在重复模式下绑定纹理

Bind Texture in Repeat Mode

本文关键字:绑定 纹理 模式      更新时间:2023-10-16

我试图在OpenGL的3D纹理中存储一个八叉树,用于使用Cg在GPU上使用,从GPUGems2的章节中找到http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter37.html。然而,我得到的结果是不正确的。我想这是因为我创建八叉树的方式。

在该章的附录中,它说"如果我们在重复模式(GL_REPEAT)下绑定间接池纹理(八叉树纹理)…"。

这仅仅意味着将过滤器和包装设置为重复,还是我需要做其他事情?这是目前为止的代码

glGenTextures(1, &octree_texture);
glBindTexture(GL_TEXTURE_3D, octree_texture);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_REPEAT);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_REPEAT);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_REPEAT);
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, WIDTH, HEIGHT, DEPTH, 0, GL_RGBA, GL_UNSIGNED_BYTE, octreeData);

谢谢你的帮助

过滤器不能重复,这会产生一个GL错误,只有换行模式可以是GL_REPEAT,这可能就是书中的意思。