Blog
Notes
Archives
About
Contact
Blog
Notes
Archives
About
Contact
渲染管线
图形渲染管线每个阶段的抽象展示,蓝色部分代表可自定义的部分:
03-Hello triangle
顶点数组对象:Vertex Array Object, VAO
顶点缓冲对象:Vertex Buffer Object,VBO
元素缓冲对象:Element Buffer Object,EBO 或 索引缓冲对象Index Buffer Object,IBO
渲染管线
在OpenGL中,任何事物都是在3D空间中,而屏幕是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。
3D坐标转换为2D坐标的处理过程是由
图形管线
来管理的。
图形管线(Graphics Pipeline):实际是指一堆原始图形数据途径一个输送管道,期间经过各种变化处理最终出现在屏幕的过程。
图形渲染管线可以被划分为两个主要的部分:
3D坐标转换为2D坐标
把2D坐标转变为实际的有颜色的像素
图形渲染管线每个阶段的抽象展示,蓝色部分代表可自定义的部分:
顶点着色器:
把一个单独的顶点作为输入,把3D坐标转换为另一种3D坐标,同时允许对顶点的属性进行一些基本处理
图元装配:
将顶点着色器输出的所有顶点作为输入,并将所有的点装配成指定的图元
几何着色器:
图元装配的输出会传递给几何着色器。几何着色器把图元形式的一系列顶点的集合作为输入,它可以通过产生新的顶点构造出新的图元来生成其他形状。
光栅化:
该阶段会把图元映射为最终屏幕上相应的像素,生成供片段着色器使用的片段。(并且执行裁切,裁切超出试图部分的像素,提升效率)
片段着色器:
计算一个像素最终的颜色。片段着色器通常包含3D场景的数据(例如光照、阴影、光的颜色等等)
OpenGL中的一个片段是OpenGL渲染一个像素所需的所有数据。
测试与混合:
所有颜色值确定后,传入该测试和混合阶段。该阶段检测片段对应的深度和模板值,用来判断这个像素处于其他其他物体前面还是后面,决定是否应该丢弃。
该阶段也会检查alpha值,并对附体进行混合。
Please enable JavaScript to view the
comments powered by Disqus.
comments powered by
Disqus