渲染管线总图

顶点着色器
顶点着色器作为管线的第一个阶段,它的作用其实很简单,就是接收外界输入的数据。这些数据是渲染图形必不可少的,所以说顶点着色器是管线中必需的一个阶段。并且数据可以传递到下一个着色器中。
细分曲面控制着色器
1.细分曲面控制着色器的数据从顶点着色器中获取,顶点着色器将数据作为输出,细分曲面控制着色器作为输入进行获取
细分曲面控制着色器的任务:
1.确定即将发送到细分曲面引擎的细分曲面级数(就是要将图形分成多少块的意思)
2.同时将生成的数据发往细分曲面评估着色器
着色器的工作原理:
将高阶面,也就是所谓的贴片(patch)分解成点、线或者三角形
细分曲面引擎
细分曲面引擎是OpenGL管线的
固定部分,主要接收以贴片为代表的高阶面并将这些面分解成更简单的基元,比如点、线或三角形。
细分曲面控制着色器传入控制点并且设置贴片使用的细分曲面因子
细分曲面引擎生成输出基元
细分曲面评估着色器会获取这些基元的顶点
细分曲面评估着色器
细分曲面评估着色器
接收细分曲面引擎输出的顶点,对其进行运行调用。其实就是再次使用这些顶点,可以自己写算法进行计算。
几何着色器
目前,我还不理解什么意思。。。下次再补充
基元装配
固定阶段,就是把顶点合成线或者三角形
裁剪
顶点存在于管线的前端,其所处的位置就是
裁剪位置。
前端输出的是四分量齐次坐标,但裁剪发生在笛卡尔坐标空间中。因此,为了从齐次坐标转换为笛卡尔坐标,OpenGL执行了透视分割,即把所有位置四分量用最后一个w分量进行分割,w为1.0。
投影分割后产生的位置在标准化设备空间中。x轴和y轴的范围是-1.0到1.0,z轴的范围0.0到1.0。用户可以看到在此区域内包含的任何几何图形,范围外的被丢弃。
范围外的被丢弃:
剔除
可以确定三角形是面向观察者还是背向观察者,并根据计算结果决定是否实际进行绘制。
剔除是可以手动开启的,好像默认不开启吧。
光栅化
指哪些片段可被线或三角形等基元覆盖的过程。就是哪些片段可以呈现在屏幕上。
片段着色器
光栅化处理基元后,会产生一个需要着色的片段列表并且将该列表传递给片段着色器
片段着色器就是确定各个片段的颜色,然后将片段发送到帧缓存中去。
帧缓存
帧缓存表示屏幕的可见内容,以及用于存储颜色以外每个像素值的其他内存区域
本文详细介绍了图形渲染管线的各个阶段,包括顶点着色器、细分曲面控制着色器、细分曲面引擎、细分曲面评估着色器、几何着色器、基元装配、裁剪、剔除、光栅化、片段着色器和帧缓存。阐述了每个阶段的功能和工作原理,帮助读者理解3D图形渲染的基本过程。





557

被折叠的 条评论
为什么被折叠?



