OpenGL

OpenGL基本名词

2020-07-02  本文已影响0人  FireStroy

OpenGL的渲染流程:
手机屏幕和电脑屏幕是用的2D像素数组,一切事物都是在3D空间中,那么OpenGL需要帮你把3D坐标转为屏幕上的2D坐标。这个转换过程是由图形渲染管线来做的。是一个数据处理流程:指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程。第一部分把你的3D坐标转换为2D坐标,第二部分是把2D坐标转变为实际的有颜色的像素。

其中蓝色为可编程部分
顶点着色器:接收来自顶点数组对象的顶点数据,主要要用是对输入的3D坐标进行一系列变换处理 比如缩放、平移、旋转等位置变换,还能进行一些基本属性处理。
图元装配:(这是不可编程的一系列过程)顶点着色器输出的所有顶点作为输入,并所有的点装配成指定图元的形状;
几何着色器:几何着色器把图元形式的一系列顶点的集合作为输入,它可以通过产生新顶点构造出新的(或是其它的)图元来生成其他形状。
光栅化:把图元映射为最终屏幕上相应的像素,生成供片段着色器(Fragment Shader)使用的片段(像素)。
片段着色器:挨个对像素进行处理,高级特效就在这里。
Alpha测试和混合:这个阶段检测片段的对应的深度(和模板(Stencil))值,用它们来判断这个像素是其它物体的前面还是后面,决定是否应该丢弃。这个阶段也会检查alpha值(alpha值定义了一个物体的透明度)并对物体进行混合(Blend)。
在现代OpenGL中,我们必须定义至少一个顶点着色器和一个片段着色器(因为GPU中没有默认的顶点/片段着色器),但是一些工具库提供了这些固定着色器,可以循序渐进的学习。
GlSL:自定义着色器语言
纹理(Texture):可以理解为图片、位图。
变换矩阵(Transformation):用于图形的平移、缩放、旋转等变化的矩阵。
投影矩阵Projection:投影矩阵会把所有顶点坐标从eye coordinates(观察空间,eye space或view space)变换到裁剪坐标(clip coordinated,属于裁剪空间,clip space)。然后,这些裁剪坐标被变换到标准化设备坐标(normalized device coordinates, NDC,即坐标范围在-1到1之间)

上一篇下一篇

猜你喜欢

热点阅读