解释一下。。
为了巩固3D知识,就萌发了一个想法。用软件模拟整个3D流水线。。基本上每看完《图形学》的一章,就会模拟一个算法,然后应用到引擎里面。
经过无数个日日夜夜,终于调试到比较满意的效果。
当然还需要完善,扫描线算法的边线处理的不好,纹理映射算法还没写。。
这是添加了高反光材质的球
CS的模型
其中模型文件采用MilkShape3D导出的ASCII文件。方便手动修改。
流水线实现的比较简单:
1.从文件中读取顶点,法向量,材质信息
2.用法向量剔除背面,把剔除后的三角形加入渲染列表中
3.处理渲染列表中的三角形,先计算顶点的光照,然后执行坐标转换,物体空间坐标系->世界坐标系->观察坐标系->投影坐标系,
4.Gouraud 填充算法填充三角形