在重复模式下绑定纹理

时间:2011-08-04 10:29:26

标签: c++ opengl textures octree

我试图将一个八叉树存储在OpenGL中的3D纹理中,以便在GPU上使用Cg,在此处找到的GPU Gems 2中的一章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);

感谢您的帮助:)

1 个答案:

答案 0 :(得分:3)

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