个人为学习图形学和熟悉固定管线流程,使用C#(基于.net framework 4.6)写的软光栅器,未考虑任何性能优化。在较为陌生的知识点上都标注了参考文献的链接。
采用左手坐标系,Model/View/Perspective Projection矩阵。代码里有VertexShader和FragmentShader两个类,但并不具备真正的Shader功能:
- VertexShader仅完成顶点变换。
- FragmentShader仅完成颜色拷贝和纹理采样(如果以后增加了光源,这里可能会尝试实现不同的光照方程)。
方向键左/右:旋转物体。
方向键上/下:拉动相机。
数字键1:切换到线框模式。
数字键2:切换到颜色模式。
数字键8:开启背面剔除。
数字键9:开启正面剔除。
数字键0:关闭剔除。
字母键O:切换到正交相机。
字母键P:切换到透视相机。
裁剪
法线变换


