精选分类
DesignPatterns
CSharp
ComputerGraphics
Unity
文章列表
Games101 作业
# Games101 作业 代码在 GitHub 中开源,包含原版没做过的作业和做过的作业,链接:https://github.com/Maikire/GAMES101-Homework 原版是在 Linux 环境下的项目 我是在 Windows 环境下做的,所以部分配置和代码有改动 # Assignment0 给定一个点 P=(2,1),将该点绕原点先逆时针旋转 45◦,再平移 (1,2),计算出变换后点的坐标(要求用齐次坐标进行计算) int main(){ Vector3f p(2.0, 1.0, 1.0); Matrix3f rp; rp...
more...Games101 笔记
# Games101 笔记 Games101 笔记 原视频 GAMES101 - 现代计算机图形学入门 - 闫令琪 # Lecture2 线性代数综述 Games101 使用右手坐标系 # 向量的点乘 公式:a→⋅b→=∣a→∣∣b→∣cosθ\overrightarrow{a} \cdot \overrightarrow{b} = |\overrightarrow{a}| |\overrightarrow{b}| \cos{\theta} \kern 0.1pta⋅b=∣a∣∣b∣cosθ 判断向量前与后:点乘...
more...Kulla-Conty 多次散射补偿
# Kulla-Conty 多次散射补偿 # 单次反射的问题 经典的 BRDF 模型只描述单次表面反射。但真实微面之间会互相遮挡、反弹。 对于粗糙度较高的材质,由于模型忽略了光线在微表面间的多次弹射,所以会导致渲染结果比真实情况偏暗,且能量不守恒。 # 多次散射补偿 在游戏开发中,Kulla-Conty 近似方案是解决微表面模型能量流失的标准方法。Kulla-Conty 提供了一个简单且高效的经验公式来补偿这些丢失的多次散射能量。 在下文中,我们约定: nnn 为宏观表面法线 vvv 为观察方向 lll 为光照方向 μo=n⋅v\mu_o = n \cdot vμo=n⋅v...
more...Unity URP BRDF shader
# Unity URP BRDF shader BRDF 理论部分在这篇文章中讲解。 渲染路径:Forward / Forward+ # 代码 # BRDF 环境光照使用拟合预计算的 BRDF LUT MyBRDF.hlsl// GGX normal distribution function// GGX 法线分布函数// GGX 用于描述微表面模型中微观几何表面法线的概率分布// Unity 中已经定义了 D_GGX,为了防止冲突这里换一个名字float D_GGX_1(float NdotH, float roughness){ float a = roughness...
more...双向反射分布函数(BRDF)
# 双向反射分布函数(BRDF) 双向反射分布函数(BRDF)是一个用于描述表面反射特性的函数。它是在微平面理论上建立的 本篇仅包含理论,这篇文章展示了如何在 Unity 中实现 BRDF 在下文中,我们约定: nnn 为宏观表面法线 vvv 为观察方向 lll 为光照方向 hhh 为半矢量(Half-vector),即 normalize(v+l)normalize(v + l)normalize(v+l) α\alphaα 为粗糙度参数(通常在引擎中定义为 α=roughness2\alpha = roughness^2α=roughness2) #...
more...CPP基础笔记
# 基础一 #include<iostream> C++ 的头文件,包含了程序必须的相关信息 main() 的完整写法 main(int argc, const char* argv[]) using namespace std; 使用标准命名空间 endl 英语意思是 end of line 一行输出结束,然后输出下一行。它的作用相当于在末尾添加换行符 \n 指数 13e+8 表示: 13*10^8 16 进制 0xN (N 为任意数) 2 进制 0bN (N 为任意数) 8 进制 0N (N 为任意数) float 型数值后应加 f float 有 7...
more...








