代码之家  ›  专栏  ›  技术社区  ›  simd

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

  •  0
  • simd  · 技术社区  · 2 年前

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

    在这种情况下,是否可以使用独立于深度缓冲区的模板缓冲区,而完全不使用深度缓冲区?

    0 回复  |  直到 2 年前
        1
  •  1
  •   Spo1ler    2 年前

    您可以输出 [[stencil]] 来自fragment函数的装饰值,根据Metal Shading Language规范表5.7,该值将是模具参考值,然后设置 MTLDepthStencilState 在某种程度上模板总是成功的。并将操作设置为 MTLStencilOperationReplace ,这意味着

    将模具值替换为模具引用值[…]

    这应该使得模版被片段函数有效地输出。

    推荐文章