gpt4 book ai didi

c++ - OSX OpenGL 深度模板组合

转载 作者:行者123 更新时间:2023-11-30 03:39:32 25 4
gpt4 key购买 nike

我正在尝试在具有 OpenGL 3.2 SDL 上下文的 OSX 10.11.5 上创建具有 GL_DEPTH_STENCIL_ATTACHMENT 纹理的帧缓冲区。似乎以下行创建了 OpenGL 错误 1280:

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,  GL_TEXTURE_2D, depthTexture, 0);

这个纹理是这样生成的:

glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH32F_STENCIL8, width, height, 0, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, 0);

我知道这是一个 OSX 问题,因为这段代码曾经在我的旧 Arch Linux 计算机上完美运行。我确实看过官方tutorial并且没有提及组合深度和模板纹理附件。那么这个功能是不被支持还是我做错了?如果不支持此功能,那么我应该怎么做呢?创建 2 个独立的深度和模板纹理?

最佳答案

从不为此感到抱歉,但事实证明我调试错了。 OSX 确实支持模板/深度混合,尽管 Apple 的文档没有太多关于它的信息。我的错误实际上来自下一行,如下所示:

glDrawBuffers(textureCount, allColorBuffers);

这是错误的,因为 texCount 包括深度纹理以及我所有的颜色缓冲区。所以将 textureCount 更改为 textureCount-1 完全解决了这个问题。

关于c++ - OSX OpenGL 深度模板组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810024/

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