探析Mask、Rect Mask2D与Sprite Mask的区别
-
Mask:Mask能够把子元素限制在父元素的形状中。正因如此,如果子元素大于父节点元素,那么只可以看到在父节点中的部分。
Rect Mask2D:Rect Mask2D是一种与Mask控件十分类似的遮罩。Rect Mask2D能够把子元素限制在父元素的矩形区域中。但是,与标准的Mask不同,它还是有一些限制的,但是它也有很多性能上的好处。
从上图可以看到,Mask与RectMask2D的区别在于:Mask必须需要一个Image来当作遮罩区域,子节点在Image渲染区域才能够显示。而RectMask2D能够以自身RectTransform做为裁剪区域,子节点在RectTransform区域内的显示只会用到固定矩形遮罩,所以在不需要特殊形状遮罩的情况下,可以优先考虑RectMask2D。
Sprite Mask:产生于mask的基础之上,精灵遮罩用于隐藏或显示部分精灵或一组精灵。值得注意的是,精灵遮罩仅作用于Sprite Renderer组件。
我们使用到的App上的图像被绘制到屏幕上,首先需要CPU从硬盘加载渲染所需要的数据到内存中,然后再将数据从内存中传递到显存。之后通过Shader方法调用OpenGL或DirectX的图形接口,这些接口会向显卡驱动发送渲染命令,显卡驱动收到渲染命令后会立马翻译成GPU能够看懂的语言,GPU则根据渲染命令从显存中取得相关数据来渲染最后的图形。
而在这其中需要我们参与的只有通过Shader调用图像编程接口这一步!那么我们将知道,Unity中每个需要绘制的元素必定有一个Shader来控制着它的渲染。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏