读书人

opengl天空盒怎么做到无缝

发布时间: 2012-04-09 13:41:24 作者: rapoo

opengl天空盒如何做到无缝?
我先把盒子画成1大小,然后用glscale放大,不过它会有下图这样的缝隙:

C/C++ code
glGenTextures(1, &texid);// 创建纹理// 使用来自位图数据生成 的典型纹理glBindTexture(GL_TEXTURE_2D, texid);    // 绑定纹理glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);// 线形滤波glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);// 线形滤波// 生成纹理glTexImage2D(GL_TEXTURE_2D, 0, 3, lWidthPixels, lHeightPixels, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_ucpPixels);

会不会与生成纹理有关系?听前辈说不实用过滤,是不是去掉
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);// 线形滤波
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);// 线形滤波
这两句? 不过去掉就贴不出图来了..

[解决办法]
不会opengl,纯帮顶
[解决办法]
贴图不满足连续纹样的要求?
[解决办法]
我原来做的时候也有缝,一直没解决。。。
[解决办法]
http://www.mbsoftworks.sk/index.php?page=tutorials&series=1
这里有一个天空盒例子,不过是opengl3.3的。你可以参考一下。
[解决办法]
探讨
贴图不满足连续纹样的要求?

[解决办法]
不是尺寸和过滤问题,是纹理坐标的问题。我没开发过OpenGL,但是在D3D里面也有这个问题,正确解决方法是画天空盒时把纹理坐标的寻址模式设置为Clamp(D3DTADDRESS_CLAMP),因为初始默认是Wrap。OpenGL里用类似的设置应该也可以。
[解决办法]
说的不太对,是“纹理坐标寻址模式”问题。
[解决办法]
探讨
不是尺寸和过滤问题,是纹理坐标的问题。我没开发过OpenGL,但是在D3D里面也有这个问题,正确解决方法是画天空盒时把纹理坐标的寻址模式设置为Clamp(D3DTADDRESS_CLAMP),因为初始默认是Wrap。OpenGL里用类似的设置应该也可以。

读书人网 >C++

热点推荐