是否可以通过Metal中的片段着色器以编程方式填充模板缓冲区?

问题描述 投票:0回答:1

模板缓冲区只能在几何图形绘制期间通过一些硬编码规则填充(例如深度缓冲区),或者是否可以在全屏片段着色器的帮助下以编程方式完全填充它,例如可以绘制黑色-基于某些 2D SDF 的白色形状?

在这种情况下是否可以使用与深度缓冲区分开的模板缓冲区,并且根本不使用深度缓冲区?

render metal fragment-shader metalkit stencil-buffer
1个回答
0
投票

您可以从片段函数中输出

[[stencil]]
装饰值,根据Metal Shading Language规范表5.7,该值将作为模板参考值,然后以模板始终成功的方式设置
MTLDepthStencilState
。并设置操作为
MTLStencilOperationReplace
,即

用模板参考值替换模板值,[...]

这应该使模板能够被片段功能有效地输出。

© www.soinside.com 2019 - 2024. All rights reserved.