2011-12-17 75 views
0

似乎在我已经构建的立方体的边缘,我不明白为什么。我已经设置了以下参数...OpenGL Skybox问题

glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 

只有有时会出现线条,这取决于相机坐在的角度。任何想法为什么线路仍然存在?

+1

您没有提供足够的信息来确定您的问题。 – ronag 2011-12-17 22:10:32

+0

更新了另一节,希望更清晰的 – Chris 2011-12-17 22:12:57

+2

屏幕截图将有助于以及纹理的外观。 – 2011-12-17 22:46:38

回答

0

原来这实际上是一个SOIL的问题,它是我正在使用的纹理加载程序。在我更改纹理加载方法后,线条消失了

1

如果您能向我们展示屏幕截图,这将有所帮助。但问题可能在于,你不是在其他人脸上用他们的邻居插入沿着每张脸的边缘的textels。

因此,您应该通过复制相邻纹理的边缘来为每个纹理添加边框,并将滤镜模式更改为GL_CLAMP。或者您可以使用立方贴图纹理。

+0

我想,只使用立方体贴图纹理不会。您还需要支持[ARB_seamless_cube_map](http://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt)扩展名或OpenGL版本,其中包含此核心(3.2,我认为)。但是,听起来好像他在那里有真实的线条,并且通过不匹配滤波引入的接缝应该不那么重要,假设纹理以某种方式匹配。但是,没有更多的信息,我们不知道,边界的想法是好的。 – 2011-12-18 16:54:24

0

也许你需要添加:

glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); 

在你提供的只有小号牛逼坐标设置的代码,你需要的[R为好。

+0

提供的代码不使用'GL_TEXTURE_CUBE'。但很高兴知道这也是必要的,我曾经在GL3上遇到过这样的问题:) – Kos 2011-12-20 12:35:00

+0

@Kos也许问题是他使用立方体贴图,但改变了错误目标的参数。 – 2011-12-20 13:36:17