Tiny Renderer是ssloy制作的CPU渲染器教程,不过是全英文,本人根据他的教程写了中文教程。
由于github记笔记比较麻烦,请转移至Notion上查阅:
https://www.notion.so/TinyRenderer-202302131552-b99e56b11f714a269960e88fe5fcd371
从零开始写一个Cpu渲染器,对C++小白友好
语言:C++
编译器:Visual Studio 2022
- 实现VECTOR3
- 实现VECTOR4,
- 实现MATRIX4,包括转置矩阵,矩阵与向量的乘法问题(左乘,右乘)
- 主要使用win api去创建一个1024*768的窗口
有两种方法,
- 直接使用win api 的setpixel
- 使用位图Bitblt绘制(涉及Framebuffer的概念,使用hdc)
- 使用DDA(digital differential analyzer) 算法,在一个坐标轴上对线段以单位间隔取样,计算另一坐标轴上最靠近线段的对应整数值。
- 使用Bresenham算法。Bresenham 算法是一个只用整数增量进行计算,精确并且有效的光栅线生成算法。
World(model)、View(Camera)、Projection、NDC、视口变换
模型变换矩阵 平移、缩放、旋转
控制物体的平移旋转缩放
用window画笔