将模板缓冲区可视化为纹理

2024-02-02

我正在尝试将模板缓冲区放入纹理中,以便在延迟渲染器中使用。

I'm getting other Color and Depth Attachments with glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textures[color1], 0); and the result is correct. Correct Rendering without Stencil Buffer

但是,当我尝试将模板缓冲区附加到纹理时 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT ,GL_TEXTURE_2D, textures[stencil], 0);我得到的结果是乱码,就好像 FBO 没有清除其缓冲区一样。

我不知道问题是什么。我怀疑这是设置模板纹理的问题......

//Stencil Texture Initialization

glBindTexture(GL_TEXTURE_2D, textures[stencil]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);

glTexImage2D( GL_TEXTURE_2D, 0, GL_STENCIL_INDEX8, 512, 512, 0, GL_STENCIL_INDEX, GL_BYTE, 0);

我的设置中没有收到任何错误代码,因此我不知道问题是什么。

编辑:也许我做得不正确。如果有人知道如何将模板缓冲区写入纹理,我真的不在乎我是否写入不同的鳕鱼。我只需要一个有效的方法。


GL_STENCIL_INDEX8

切勿使用此功能。如果您需要模板位,请始终使用打包的深度/模板图像,例如GL_DEPTH24_STENCIL8。您应该将其附加到GL_DEPTH_STENCIL_ATTACHMENT point.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将模板缓冲区可视化为纹理 的相关文章

随机推荐