MainLightShadow(主光照阴影):
通常在渲染管线中的最开始阶段进行绘制,这是因为主要光源的阴影对于场景中的物体渲染和视觉效果非常重要。
下面是一些原因,解释为什么主光照阴影往往是在最开始绘制的:
1、视觉效果的重要性:主光照是场景中影响整体光照效果的主要因素之一。绘制主光照阴影有助于在渲染过程的早期阶段就准确地估计光照的影响,使场景在阴影方面具有更加真实和逼真的外观。
2、深度信息需求:主光照阴影需要通过渲染过程中的深度信息来计算物体的阴影。深度信息在渲染管线中的最开始阶段获得,因此,绘制主光照阴影通常需要在深度信息可用之后但场景尚未渲染时进行。
3、提前Z测试(early-Z)优化:在渲染管线的最开始阶段进行主光照阴影的绘制,可以利用提前Z测试(early-Z)优化。提前Z测试是一种优化技术,可以通过在像素着色器之前比较深度信息,排除不可见的像素进行着色计算,从而节省计算资源。通过在渲染管线的早期阶段绘制主光照阴影,可以最大程度地利用提前Z测试优化,提高渲染效率。
DepthNormalPrepass(深度法线预渲染):
深度法线预渲染为了减少在后续渲染步骤中的开销,在这一步中,系统会对场景中物体进行渲染,并将每个像素的深度值和法线信息存储下来。在后续的渲染过程,可以直接使用之前计算好的深度值和法线信息,不需要在次进行复杂的计算,从而提高渲染效率。
深度法线预渲染对于一些深度和法线信息依赖性较高的效果非常有用,例如阴影、光照计算以及屏幕空间的后处理效果等。通过提前计算深度和法线信息,可以减少后续步骤中对于场景几何的处理和计算量,能够较好的提升性能。
ColorGradingLUT(颜色分级查找表):
颜色分级查找表基于一个预先定好好的颜色表,通过对图像中每个像素的颜色值进行查找并替换,从而改变图像的整体色调和颜色效果的调整。
在渲染中,使用颜色分级查找可以实现一些图像处理效果,例如色彩校正、风格化和调色。通过使用预定义的颜色表,可以快速改变图形外观,从而得到预期的色彩效果。
Deffered Pass(延迟渲染):
延迟渲染主要是提高渲染效率和灵活性,相比于前向渲染需要对每个像素进行逐光照计算,延迟渲染先将场景中的几何信息渲染到一个G-Buffer中,它存储了每个像素的位置、发现、颜色等信息。它的优势是光照计算量大幅度降低,渲染效率较好的提高,缺点是边缘处理效果不好,对硬件要求较高在低端移动设备上性能较差,带宽要求更高。
CopyDepth(深度复制):
深度复制是将之前得到的深度信息复制到另一个缓冲区的过程,主要是为后续图形处理提供准确的深度信息,以便进行遮挡剔除、屏幕空间效果和光线追踪等的处理。
Render Qpaques Forward Only(只渲染不透明物体):
RenderGBuffer(渲染几何缓冲区):
GBuffer用于将场景中的几何信息渲染到一个特殊的缓冲区即几何缓冲区。在该步骤中,位置、发现、颜色、反射率等几何信息将被渲染到G-Buffer中,后续的渲染和图像处理过可以直接访问G-Buffer中的几何信息,并在各像素处进行准确的计算和处理。
其优势是通过将几何信息提前存储到G-Buffer中,后续的渲染过程可以更加高效的进行,不需要重复计算和处理几何信息。
DrawTransparentObjects(绘制透明物体):
该步骤主要用于处理透明物体的渲染。透明物体与不透明物体不同,其表现出来的颜色和遮挡关系与背景相关,需要处理透明度,混合和排序等问题。
这个步骤中,透明物体会按照一定的顺序被绘制,确保正确的混合和遮挡效果,透明物体的渲染通常涉及到透明排序、深度测试和混合模式的设置等。通过适当的排序和混合设置,可以实现透明物体的正确显示效果。
通常,DrawTransparentObjects步骤是在RenderGBuffer步骤之后进行,因为在绘制透明物体前,需要得到物体的几何信息,并且已经完成不透明物体的渲染。