如何在DX9着色器中重叠图像形状

  • 本文关键字:重叠 图像 DX9 directx hlsl
  • 更新时间 :
  • 英文 :


我有3个纹理形状,我想相互重叠,但我还没能弄清楚如何做到。我可以通过以下方式轻松实现添加剂混合:

color1 + color2 + color3;

但如果没有加性效应,我想不出该怎么做。我明白我需要做";阿尔法混合";不知怎么的,但我没能度过只找到无法在DX9像素着色器中正确应用的公式或代码片段的阶段。

还有其他混合模式,但着色器程序中的基本alpha混合形式为

blended = lerp(bottom_layer, top_layer, value)

其中,当值等于1时,blended将返回top_layer,当值介于0和1之间时,在两者之间混合,当值为0时,返回底层。只需再次重复该操作即可混合任何附加层。

值的选择取决于应用程序。对于不混合颜色的重叠形状,请使用值的遮罩形状。例如:

blended = lerp( background, color_green, step(length(uv-0.5),0.5));

将在背景色的顶部绘制一个绿色的圆圈,而不进行颜色混合。

最新更新