渲染管道光栅阶段四“片元着色器”

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渲染管道光栅阶段四“片元着色器”相关的知识,希望对你有一定的参考价值。

1. 片段着色器(Fragment Shader)/像素着色器(Pixel Shader)

DirextX称为像素着色器(Pixel Shader)

用来决定屏幕上像素的最终颜色。为每个片元计算颜色,包括光照计算以及阴影处理等高级效果。如何计算由开发者配置,比如通过三角形重心坐标插值计算颜色值,计算阴影,或者直接用纹理覆盖。

可编程,可选。

  • 片元经过一系列的测试(深度测试,透明度测试等)才有可能被选上而转变为像素,这也是将之称为预备像素的原因。如果一个片元被选定作为一个像素,经过一系列的变换,最终将转变为包含RGBA值的屏幕像素。

  • 片段着色器仅处理单个片元,也就是即便时相邻也不能互相影响,这与GPU的多线程、少控制结构的架构高度吻合。

1.1 常见技术

  • 纹理贴图

贴图就好比给一个光秃秃的模型粘上一层图像,让其栩栩如生。包括法线贴图、凹凸贴图、纹理贴图(texturing)。

纹理采样,我们通常会在顶点着色器阶段输出每个顶点的纹理坐标,然后在前面两个阶段进行插值计算每个像素的纹理坐标。

  • 光照技术

除了贴图,还需要考虑灯光对颜色的影响,许多光照计算都是在这个阶段完成的。经验理论如Lambert、Phong、Blinn-Phong,到后来的辐射度量学、渲染方程、双向反射分布方程(BXDF)、PBR。

  • 其他信息
    包括了法线贴图、高度图、糙度图等等。

以上是关于渲染管道光栅阶段四“片元着色器”的主要内容,如果未能解决你的问题,请参考以下文章

Unity渲染流程(渲染管线)(渲染流水线)

图形渲染-渲染流水线

图形渲染-渲染流水线

Unity Shader:几何着色器

Unity3D Shader系列之渲染流水线

OpenGL渲染管线(rendering pipeline)