影响片段着色器内部的深度或模板缓冲区?

发布于 2024-12-02 04:05:57 字数 127 浏览 1 评论 0原文

我知道可以通过写入 gl_FragDepth 来控制写入 GLSL 中深度缓冲区的内容,但是是否可以写入模板缓冲区?

另外,我是否可以从片段着色器中完全取消像素写入,就好像像素未通过模板或深度测试一样?

谢谢

I know it is possible to control what is written to the depth buffer in GLSL by writing to gl_FragDepth, but is it possible to write to the stencil buffer?

Also, can I cancel a pixel write completely from within the fragment-shader, as if the pixel had failed a stencil or depth test?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑凤梨 2024-12-09 04:05:57

如果您使用正确的硬件,则可以写入模板缓冲区。所有 Radeon HD 硬件都可以使用 AMD_stencil_shader_export。有一个ARB_stencil_shader_export,但我无法验证它是否特别普遍。

如果您想阻止片段写入任何内容,可以使用discard。这有点像概念上抛出异常(但不是行为上)。

If you are using the right hardware, you can write to the stencil buffer. All Radeon HD hardware can use AMD_stencil_shader_export. There is an ARB_stencil_shader_export, but I can't verify if it is particularly widespread.

If you want to stop a fragment from writing anything, you can use discard. It's sort of like throwing an exception conceptually (but not behaviorally).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文