我有一个由三角形组成的立方体,所以有8个顶点和相应的切线来创建三角形。我在创建这个立方体的纹理坐标时遇到了问题。我尝试使用如下值:
float amt = 1.0f;
m_texBuffer.push_back(Texel(0.0f, 0.0f));
m_texBuffer.push_back(Texel(amt, 0.0f));
m_texBuffer.push_back(Texel(amt, amt));
m_texBuffer.push_back(Texel(0.0f, amt));
m_texBuffer.push_back(Texel(0.0f, 0.0f));
m_texBuffer.push_back(Texel(amt, 0.0f));
m_texBuffer.push_back(Texel(amt, amt));
m_texBuffer.push_back(Texel(0.0f, amt));通过改变amt的值,我得到了奇怪的视觉效果。我明白,由于图像可以比实际对象小,因此不一定有一对一的对应关系,所以我尝试将amt设置为一个较小的值,但仍然无法进行。
发布于 2011-10-17 16:37:46
对于常规纹理,每个坐标中的采样范围为0到1,与采样分辨率无关。
不幸的是,你的代码绝对不能说明问题,它可以是任何东西。我们真的需要看到更多,特别是实际的OpenGL调用。
由于注释而进行编辑
加载图像数据时,必须告诉OpenGL缓冲区中数据的布局。基本信息是
(glTexImage的参数)
(每个组件的组件大小和大小)
(glPixelStore的参数)
请参考glTexImage和glPixelStore文档,并针对您的图像数据进行适当的设置。
https://stackoverflow.com/questions/7789066
复制相似问题