2011-10-17 163 views
1

我有一个由三角形组成的立方体,因此8个顶点和相应的角色创建了三角形。我无法创建此立方体的纹理坐标。我尝试使用类似的值:纹理使用OpenGL中的2D纹理映射3D对象

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

哪里?我没有看到复选框,也没有看到答案 – Katianie

+0

我的意思是你的其他问题。我只是注意到,你没有(当时我发布)接受了任何答案,并让你知道这个功能。 –

+0

@NicolBolas,我认为他需要15个声望。所以直到他得到那个,他不能接受答案 – Shahbaz

回答

1

对于常规纹理,每个坐标中的采样范围为0到1,与采样分辨率无关。

不幸的是,你的代码是绝对不会说的,它可能是任何东西。我们真的需要看到更多,尤其是实际的OpenGL调用。

编辑因发表评论

导入图像数据必须告诉OpenGL在缓冲区中的数据的布局。的基本信息是

(参数glTexImage)成分的

  • NUMER
  • 部件
  • 排列
  • 大小各成分的

(参数glPixelStore)

  • alignme NT(0用于紧密包装,否则对准为1,2或4字节)
  • 像素和行运行lenghts(通常是那些是0)

请参阅的glTexImageglPixelStore的文件和设置它们apropriately为您的图像数据。

+0

我实际上在物体上产生了彩虹迷幻效果。它几乎像电视屏幕上的彩色雪。我不知道为什么会发生这种情况。 – Katianie

+0

@Katianie:然后你没有正确加载你的纹理。完全不同的问题。请为将来的问题添加屏幕截图。查看我的答案编辑。 – datenwolf