TinyRenderer笔记4:着色器
顶点着色器和片段着色器
OpenGL 2的渲染管道可以表示如下(新版本也差不多):
在较新的OpenGL中还有其他着色器,在这个课程中只关心顶点着色器(vertex shader)和片段着色器(fragment shader)。
在上面图片中,我们无法触摸的阶段都用蓝色表示,我们的回调用橙色表示。
事实上现在的main()
函数是原始的处理程序(primitive processing routine),它可以叫做顶点着色器。我们在这里没有primitive assembly的步骤,由于我们仅绘制三角形在我们的代码中,它与primitive processing合并。现在的triangle()
函数是是rasterizer,对于在三角形中的每个像素都调用了了片段着色器的功能,然后执行深度检查之类的。
知道了什么是着色器就可以开始创建着色器了。