2

我正在尝试将八叉树存储在 OpenGL 中的 3D 纹理中,以便使用 Cg 在 GPU 上使用,来自 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);

谢谢您的帮助 :)

4

1 回答 1

3

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

于 2011-08-04T11:41:02.707 回答