渲染管道光栅阶段五“逐片元操作”
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渲染管道光栅阶段五“逐片元操作”相关的知识,希望对你有一定的参考价值。
1. 逐片元操作(Per-Fragment Operations)/合并阶段(Output-Merger)
主要就是对片元进行测试(Test)以及合并(Merge)。
不可编程,但可通过参数高度可配置性
OpenGL称为逐片元操作(对每一个片元进行操作)
Direct X 称为输出合并
- 渲染管线的最后一步
1.1 测试
决定每个片元的可见性。可通过参数配置来控制,涉及到很多测试。为什么要进行测试呢?因为屏幕上的一个像素可能存在多个片元进行竞争,通过测试等规则,可以决定哪个片元最终能够渲染到屏幕上
- 裁剪测试(Scissor Test)
- 透明度测试(Alpha Test)
- 模板测试(Stencil Test)
- 深度测试(Depth Test)
1.2 合并过程
step1. 没有经过测试的片段会被丢弃,不需要进行混合阶段;
step2. 经过测试的片段会进入混合阶段,可以将其转变为像素了(需要注意的是此时像素已经包含了深度信息,之前这部分信息被保存在深度缓冲里),需要把这个片元的颜色值和已经储存的颜色缓冲中的颜色进行合并,或者说混合。
step3. 一切完成之后,片元就会被送往颜色缓冲区。
1.2.1 两种合并方式
- 完全不透明的像素:可直接进行颜色替换。
- 透明的像素:根据不透明度(Alpha)进行混合(Blend),混合操作可配置,添加混合系数加减乘除。
以上是关于渲染管道光栅阶段五“逐片元操作”的主要内容,如果未能解决你的问题,请参考以下文章