GUI 节点可以作为 蒙版 节点—遮蔽影响其他节点的显示方式. 本教程介绍了其用法.
方块, 文本 和 饼状图节点可以被裁剪. 要创建裁剪节点, 在 GUI 里添加一个节点, 然后设置相关属性:
None
不施加裁剪.Stencil
施加裁剪.然后把被裁剪节点作为蒙版子节点加入进来.
原理上裁剪是把节点写入 裁剪缓冲区. 此缓冲区包含蒙版: 就是告诉显卡哪些像素该渲染, 哪些不该渲染.
Stencil
的话相当于把它的形状 (或者其反转形状) 写入裁剪蒙版保存在裁剪缓冲区当中.这里, 我们建立了节点的三层结构:
这种结构下可以有四种裁剪方式. 绿色标志出园被裁剪以后的样子. 结果如下所示:
层用于控制节点的渲染顺序 (以及合批顺序). 使用层和蒙版节点时原本的层顺序会被覆盖. 层顺序的优先级高于蒙版顺序—如果一个层的节点与蒙版节点组合在一起, 如果启用蒙版的父节点属于比其子节点更高的层,则裁剪可能会发生乱序. 没被分配层的子节点仍具备父子结构, 继父节点之后还会被渲染和裁剪.
蒙版节点及其层级有层设置的话会优先显示, 没有设置的话按照普通顺序显示.
这里蒙版节点 “ocular” 层设置为 “layer3” 然后 “bean” 节点设置成 “layer1”. 所以被 ocular 剪裁的纹理显示在了 bean 的上层.
节点 “shield” 设置为 “layer2”, 但是在显示顺序上与 “ocular” 和 “bean” 并不冲突. 要更改 “shield” 的显示顺序, 设置层级顺序即可.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB