欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > Mask实现裁剪的原理浅析

Mask实现裁剪的原理浅析

2025/2/25 16:03:48 来源:https://blog.csdn.net/qq_22626987/article/details/144411811  浏览:    关键词:Mask实现裁剪的原理浅析

简单来说,就是Mask会设置继承了MaskableGraphic的组件的Shader属性,进行特定的模板测试

一张普通的Image,当不挂Mask组件时,其默认Shader的模板缓存属性是这样的
在这里插入图片描述
当挂载上Mask时,会改变
在这里插入图片描述
Stencil ID变成了1,即当前值,Stencil Operation变成了2,即Replace,Stencil Comparison是8,即Always,整体意思就是模板测试总是通过,然后替换模板值为1,那么这里覆盖区域的模板值就变成了1

当在下面挂上一张子Image时,其Shader属性也会发生改变
在这里插入图片描述Stencil ID依旧为1,即当前值,Stencil Operation变成了0,即Keep,Stencil Comparison是Equal,整体意思就是模板测试在模板值和当前值相等时通过,通过后模板值依旧保持之前的样子,当前值是1,模板值是1,即通过测试,但是不改变模板缓存的值。
也就是说在Mask覆盖区域,这部分像素能够被渲染,但是不在这部分区域的不被渲染,从而实现裁剪效果
具体代码在MaskableGraphic.cs中
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词