Game101课程笔记_lecture07_着色1(光照与基本着色模型)
1 occlusion
先把远处的画完,再画近处的,这就是画家算法。
图形学中用画家算法,需要排序,但是要特别注意顺序,要不然画出来不对;
但是有一中特殊的情况不对。
提出了一种深度缓冲的算法;对每一个像素的深度进行比较是可以的。
同步生成两个图,一种是frambuffer帧缓冲,帧缓冲放着每个像素的颜色值。另一个就是深度图,深度缓冲,放着每个
1 z-buffer
我们认为:深度是摄像机到这个点的深度,永远是正的,值越小离的越近。
近的颜色黑,远的颜色浅。近的值小,远的值大。
2 算法
5小于R,所以将R在对应的像素上更新深度缓冲。
再插入第二个三角形。做上角8>5,对应的像素被原来的三角形遮挡。左下角3<5,跟新颜色,同时跟新z-buffer;
所有的操作都是针对于一个像素来说的,渲染的结果和深度缓冲都是同步更新。
2 z-buffer 复杂度
这里并没有排序,深度缓冲的算法只是一直在求最小值而已。
这里老师是如何说这个复杂度 的?再听一下?
浮点数判断相等是很难的,深度完全一样如何处理?
在很多硬件中使用这个算法。
z-bufffer处理不了透明问题。
2 Shading
1 什么是着色
不同的物体应用不同的材质。
2 基础的着色模型
高光+漫反射+环境光=材质
ambient lighting:间接光照,通过别的物体反射得到的光照,在路径追踪中讲
3 shading local
local 局部,只看它自己,不考虑其他物体的存在。
shading point—》本身的颜色,多么亮。
shading≠shadow
4 漫反射
光是能量,看到的物体是接收到了多少能量。看shading point周围一个单位面积会受到多少能量.
地球上有四季之分,是因为夏天会被光直射,单位面积接收到的能量大。
lameber余弦定律:shading point 接收到多少光与cos成正比。
光线在传播的过程与光线传播的距离R的平方成反比
为啥要做max呢,当是负数的时候,没有任何物理意义,就认为是0;
shading point为啥有颜色呢?反射
kd这里是个可调参数,并没有明确的符合能量公式的要求
kd=1,都反射了,那么就是白色。
kd=0,所有能量都被吸收了,是黑色的
不管从哪里看都是一模一样的,漫反射与观察的方向没有任何关系。考虑的是光线和法线的夹角。
漫反射能量均匀分布在各个方向。
但是与shading point的位置有关系,只是你在不同的地方看一个shading point的点是一样的。
是一个经验模型,不是完全符合物理。