通过蒙板测试在NGUI中简单实现蒙板效果

来源:互联网 发布:网页制作的软件 编辑:程序博客网 时间:2024/05/16 08:54

经常会有需要镂空一张贴图的时候,比如新手引导的界面。使用自定义NGUI Shander可以简单的实现。但是效果还是比较初级


步骤一:

创建两个UITexture,分别为黑色底图maskbg,蒙板mask。mask要层级低于maskbg。

步骤二:准备两个Shader:Unlit - Transparent Colored MaskBG,Unlit - Transparent Colored Mask,分别给maskbg及mask使用。它们都是在NGUI自带渲染UITexture的Shader Unlit - Transparent Colored上改变而来。所以可以复制两份Unlit - Transparent Colored着色器,分别命名好。

步骤三:在Transparent Colored MaskBG加入代码

Stencil{Ref 0Comp Equal}




只有蒙板缓冲区的值为0时,贴图像素才会被渲染。没添加mask的话能全部显示。

步骤四:在Transparent Colored Mask

Stencil{Ref 1Comp NeverFail Replace}

永远不渲染mask贴图,并且将蒙板缓冲区的值置为1。

步骤五:给maskbg及mask这两个UITexture设置你想要的贴图。通过指定mask的位置的大小,可以方便地控制蒙板区域。


不支持Alpha蒙板,后面再研究

0 0