Shader学习——渲染顺序,混合命令

2019-08-24  本文已影响0人  BacteriumFox

渲染顺序

名称 队列索引号 描述
Background 1000 这个渲染队列会在其他任何队列之前被渲染,通常用来渲染背景
Geometry 2000 默认的渲染对了,大多数物体使用这个队列,不透明物体使用这个队列
AlphaTest 2450 需要透明度测试的物体使用的队列
Transparent 3000 这个队列的物体会在所有Geometry和AlphatTest物体渲染之后,再按照从后往前的顺序进行渲染。任何透明物体都使用该队列
Overlay 4000 该队列实现一些叠加效果。任何最后渲染的物体在该对了。

混合

只要有关键字Blend,就代表开启混合(除Blend off以外)

命令 描述
Blend SrcFactor DstFactor 开启混合,并设置混合因子。源颜色(该片元颜色)乘以SrcFactor,目标颜色(已经存在于颜色缓冲的颜色)会乘以DstFactor,然后把两者相加后在存入颜色缓冲区
Blend SrcFactor DstFactor,SrcFactorA DstFactorA 与上面几乎相同,只是使用不同的因子来混合透明通道

混合因子

参数 描述
One 因子为1
Zero 因子为0
SrcColor 因子为元颜色值。当用于混合RGB的混合等式时,使用SrcColor的RGB分量作为混合因子;当用于混合A的混合公式的时候,使用SrcColor的A分量作为混合因子。
SrcAlpha 因子为源颜色的透明度值(A通道)
DstColor 因子目标颜色值。相当于混合RGB通道的混合等式时,使用DstColor的RGB分量作为混合因子;当用于混合A通道的混合等式时,使用DstColor的A分量作为混合因子。
DstAlpha 因子为目标颜色的透明度值(A通道)
OneMinusSrcColor 因子为(1-源颜色)。相当于混合RGB通道的混合等式时,使用结果RGB分量作为混合因子;当用于混合A通道的混合等式时,使用结果的A分量作为混合因子。
OneMinusSrcAlpha 因子为(1-源颜色的透明度值)
OneMinusDstColor 因子为(1-目标颜色)。相当于混合RGB通道的混合等式时,使用结果RGB分量作为混合因子;当用于混合A通道的混合等式时,使用结果的A分量作为混合因子。
OneMinusDstAlpha 因子为(1-目标颜色的透明度值)

常见混合操作类型

描述 命令
正常(Normal)透明度混合 Blend SrcAlpha OneMinusSrcAlpha
柔和相加 Blend OneMinusDstColor One
正片叠底 Blend DstColor Zero
两倍相乘 Blend DstColor SrcColor
变暗 BlendOp min / Blend One One
变亮 Blend OneMinusDstColor One / Blend One OneMinusSrcColor
线性减淡 Blend One One

混合操作

image.png
上一篇 下一篇

猜你喜欢

热点阅读