首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在openGL中使用2D纹理对3D对象进行纹理贴图

在openGL中使用2D纹理对3D对象进行纹理贴图
EN

Stack Overflow用户
提问于 2011-10-17 11:25:48
回答 1查看 977关注 0票数 1

我有一个由三角形组成的立方体,所以有8个顶点和相应的切线来创建三角形。我在创建这个立方体的纹理坐标时遇到了问题。我尝试使用如下值:

代码语言:javascript
复制
    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设置为一个较小的值,但仍然无法进行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-17 16:37:46

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

不幸的是,你的代码绝对不能说明问题,它可以是任何东西。我们真的需要看到更多,特别是实际的OpenGL调用。

由于注释而进行编辑

加载图像数据时,必须告诉OpenGL缓冲区中数据的布局。基本信息是

(glTexImage的参数)

  • components
  • arrangement of components
  • size of each components

(每个组件的组件大小和大小)

(glPixelStore的参数)

  • 对齐(0表示紧密堆积,否则对齐为1、2或4字节)
  • 像素和行游程长度(通常为0)

请参考glTexImageglPixelStore文档,并针对您的图像数据进行适当的设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7789066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档