This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
GUI 节点可以作为 蒙版 节点—遮蔽影响其他节点的显示方式. 本教程介绍了其用法.
方块, 文本 和 饼状图节点可以被裁剪. 要创建裁剪节点, 在 GUI 里添加一个节点, 然后设置相关属性:
None
不施加裁剪.Stencil
施加裁剪.然后把被裁剪节点作为蒙版子节点加入进来.
原理上裁剪是把节点写入 裁剪缓冲区. 此缓冲区包含蒙版: 就是告诉显卡哪些像素该渲染, 哪些不该渲染.
Stencil
的话相当于把它的形状 (或者其反转形状) 写入裁剪蒙版保存在裁剪缓冲区当中.这里, 我们建立了节点的三层结构:
这种结构下可以有四种裁剪方式. 绿色标志出园被裁剪以后的样子. 结果如下所示:
层用于控制节点的渲染顺序 (以及合批顺序). 使用层和蒙版节点时原本的层顺序会被覆盖. 层顺序的优先级高于蒙版顺序—如果一个层的节点与蒙版节点组合在一起, 如果启用蒙版的父节点属于比其子节点更高的层,则裁剪可能会发生乱序. 没被分配层的子节点仍具备父子结构, 继父节点之后还会被渲染和裁剪.
蒙版节点及其层级有层设置的话会优先显示, 没有设置的话按照普通顺序显示.
本例中, 节点 “Donut BG” 和 “BG” 都使用了 layer 1. 它们的渲染顺序遵循层级即 “Donut BG” 先于 “BG” 渲染. 然而, 子节点 “Donut Shadow” 归为 layer 2 即更高层级, 则它的渲染晚于这两个节点. 这种情况下, 渲染顺序为:
可见 “Donut Shadow” 对象基于层级被两个蒙版节点裁剪, 即使它是蒙版节点的唯一子节点.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB