gpt4 book ai didi

c++ - OpenGL - 如果是 alpha,不要写深度

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:55:53 25 4
gpt4 key购买 nike

我想在 OpenGL 中使用 C++ 和 GLSL 做什么:当纹理具有 alpha (texture.a! = 1.0;) 时,该像素不会写入深度缓冲区。 (对于颜色缓冲区,它被写入)写入深度只有在一个像素texture.a == 1.0时才会发生;

在着色器中丢弃不是解决方案 - 然后这个像素不会写入颜色缓冲区。

有什么想法吗?

@更新:示例:我有一些由 OpenGL 渲染的 UI 图像。其中一些在角落有阿尔法。在场景渲染中,我有“深度预 channel ”通过不计算它们上的光来保存一些像素。我还想将 UI 图像获取到该 prepass - 但只有完全不透明的像素 (alpha = 1.0)。

最佳答案

Andon 的评论中所述: "当你写一个片段时,你总是必须写一个深度值,没有办法在着色器级别选择性地启用或禁用它。"

关于c++ - OpenGL - 如果是 alpha,不要写深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19199706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com