我有一个由三角形组成的立方体,所以有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的变量值获得了奇怪的视觉效果。我明白,因为一个图像可能比实际对象小,所以没有一对一的对应关系,所以我试着把它变成一个很小的值,但仍然没有去。
答案 0 :(得分:1)
对于常规纹理,每个坐标的采样范围为0到1,与采样分辨率无关。
不幸的是,你的代码绝对没有说明,它可能是任何东西。我们真的需要看到更多,特别是实际的OpenGL调用。
由于评论而编辑
加载图像数据必须告诉OpenGL缓冲区中数据的布局。基本信息是
(glTexImage的参数)
(glPixelStore的参数)
请参阅glTexImage和glPixelStore的文档,并为您的图像数据进行适当设置。