DirectX 12 3D游戏开发实战—第8章 学习笔记03
个人学习用,请勿转载,谢谢!
词汇
平行光源:parallel light 方向光源:directional light 点光源:point light
平方反比定律:inverse squared law 高动态范围(HDR):high dynamic range
色调映射:tonemapping; tone mapping 衰减:falloff 动态分支:dynamic branching
聚光灯光源:spotlight 地形:terrain 有限差分格式:finite difference scheme
渲染过程常量缓冲区:per-pass constant buffer 延迟渲染:deferred rendering
8.10平行光源
- 平行光源是一种距目标物体极远的光源,因此可以将这种光源发射的光线看作是彼此平行的关系,由于十分遥远,所以可以忽略距离的影响,而仅指定照射到场景中的光强度(intensity)
- 用向量来定义平行光源,所有光线采用相同的方向向量代之
- 方向光源的常见实例是太阳
8.11点光源
1.点光源以球面向各个方向发出光线。
2.对于任意点P,位置Q处的点光源发出的光线,总有一束会传播到此点,因此光向量的方向是由P指向光源Q:
L = Q − P ∣ Q − P ∣ L=\frac {Q-P}{|Q-P|} L=∣Q−P∣Q−P
衰减
-
物理学中,光强会根据平方反比定律随距离函数发生衰减,距光源d处的某点光强为
I ( d ) = I 0 d 2 I(d)=\frac {I_0}{d^2} I(d)=d2I0其中 I 0 I_0 I0为距离光源d=1处的光强。 -
若根据物理学设置光量值并辅以HDR光照与色调映射技术效果会很好,但这里并不使用
-
线性衰减函数:
a t t ( d ) = s a t u r a t e ( f a l l o f f E n d − d f a l l o f f E n d − f a l l o f f S t a r t ) att(d)=saturate(\frac {falloffEnd-d}{falloffEnd-falloffStart}) att(d)=saturate(falloffEnd−falloffStartfalloffEnd−d)
saturate函数会将它的参数限定在 [ 0 , 1 ] [0,1] [0,1]范围内:
f ( x ) = { x , = 0