mini3DRender: 光照

光照,在光栅化渲染器中,是使用近似方法表现类似自然界中的物体光照效果。
这里会介绍Blinn-Phong和Phong光照模型,基本步骤如下图所示:
Phong_components_version_4
这两个模型将整体的光照分为:
Ambient(环境光)+Diffuse(散射光)+Specular(高光或镜面反射光)

原理

1-2
2
3-2
4

实现

我将会在mini3DRender里面添加光照功能。

  • 新建light.h 和 light.cpp,对点光源进行定义
  • 在绘制三角形函数中计算当前三角形的法向量,传入到最后的绘制扫描线函数
  • 根据上面的公式计算,计算每个点的光照

效果

下面还是斯坦福兔子!(但是加了光照)
lightBunny

参考

初学光栅渲染器的一些参考资料
入门Shading,详解Blinn-Phong和Phong光照模型

展示评论