光照,在光栅化渲染器中,是使用近似方法表现类似自然界中的物体光照效果。
这里会介绍Blinn-Phong和Phong光照模型,基本步骤如下图所示:
这两个模型将整体的光照分为:
Ambient(环境光)+Diffuse(散射光)+Specular(高光或镜面反射光)
原理
实现
我将会在mini3DRender里面添加光照功能。
- 新建light.h 和 light.cpp,对点光源进行定义
- 在绘制三角形函数中计算当前三角形的法向量,传入到最后的绘制扫描线函数
- 根据上面的公式计算,计算每个点的光照
效果
下面还是斯坦福兔子!(但是加了光照)