项目简介
最近在进行图形学学习的时候偶然发现的一个开源项目,学习图形学一个避不开的话题就是渲染器的构建,渲染器的构建能告诉我们计算机究竟如何将二进制的信息准换成丰富多彩的图形?很多人学习图形学到了后期可以调用OpenGL完成很多高级功能,但是能否从零开始构建一个完整的渲染器,恐怕还要打上一个问号。Tiny Renderer的项目地址我放在了文章最后,后期我会找时间将项目说明博客翻译中文版分享出来。
教程从渲染器底层入手,尽可能的脱离外部库的依赖,从绘制直线和三角形的方法开始构造完整的渲染器,从画点、线和三角形开始,逐步深入三维变换、投影,实现顶点着色器、片段着色器,每一步都尽可能地脱离OpenGL,从底层理解渲染器工作原理,对我们学习OpenGL,理解OpenGL的工作原理有很大帮助。
要注意的是,项目代码本身的意义不大,最重要的是我们阅读项目代码要能够有所收获实现自己的软件渲染器。
运行效果
在这个项目中,作者从头实现了一个简化版本的OpenGL工作流,在不使用第三方图形库的前提下,在计算机上渲染出三维人物模型,整个项目代码规模约在500行左右,要注意的是为了尽可能减少对第三方库的依赖,本项目中使用TGA格式的图像文件,完整的项目地址放在文末,下面两幅图是使用该自制渲染器运行后的效果