简介:
渲染就是将3D世界中的物体显示到2D平面中的一个过程。学习OpenGL渲染的机制就是学习如图所示的几个关键部分。
在OpenGL ES 1.0 版本中,只支持固定管线,而在OpenGL ES 2.0后支持可编程管线,即在渲染的过程中不再是对开发人员透明的,可以通过一定的操作来实现更为复杂的功能。如图灰色部分(Vertex Shader和Fragment Shader)即为可编程部分,通过编写glsl脚本语言来控制OpenGL的渲染过程。
Vertex Arrys/Buffer Objects
即用户输入数据,如绘制三角形等输入的顶点信息。VertexShader
可编程脚本(GLSL),用户可以通过编写shader脚本来控制GPU的运行,从而具有很强的灵活性。OpenGL程序通过输入需要绘制图形的顶点信息,对于每个输入的顶点都会进入这个顶点着色器,所以通过顶点着色器将控制每个顶点的信息。由于顶点着色器是每个顶点相对独立运行的,所以无法在顶点着色器中访问关联的顶点等信息。
在顶点着色器中主要完成的工作就是将最终要显示的顶点通过模型视图投影矩阵变换,输出到gl_Position内置变量中,也就是说最后gl_Position保存的顶点是裁剪坐标(Clip Coordinates),之后只需要将顶点坐标进行裁剪和视口转换即最终用户空间看到的坐标。