软渲染器:简单说来就是借助软件将3D模型数据渲染成我们屏幕上的画面内容。
相关知识:线性代数,基本图形学知识,基本操作系统知识。
主要参考:《计算机图形学》第四版《3D游戏编程大师技巧》 Blog*N。
《3D游戏编程大师技巧》是完成了一个3D游戏引擎,而这里所写的软渲染器只是其中一部分,本系列只是为了解流程,不考虑效率,没有做相关优化。
系列代码:https://github.com/YIWANFENG/MiniRenderer
关于JSON数据加载部分以及显示相关参考最后附录,非重点。
本系列采用右手坐标系以及:
点光源的位置坐标是位于世界坐标系。
相机的位置坐标也是位于世界坐标系。
Mesh原始为局部坐标系,后变换为世界坐标系中,然后再进行投影。
Mesh的纹理坐标是二维坐标。
附上最后的成果图:一只有简单光影效果的3D猴子渲染图
PS,一年考研来一直没做,现在这个终于可以告一段落。
PS的PS:等待的日子总是最熬人的,不是吗?