c++ - Cinder 如何纹理 .obj trimesh

标签 c++ texture-mapping cinder

我是 c++/cinder 的新手,我正在尝试将 3ds .obj 文件导入 cinder 并应用简单的纹理。我真的找不到任何关于如何执行此操作的简单教程,它似乎与 freeGLUT 略有不同。

  gl::Texture sTexture;
  sTexture = gl::Texture(loadImage(loadAsset("texture.jpg")));

  cinder::TriMesh mySphere;
  ObjLoader loader( loadFile( "mySphere/sphere.obj" ) );
  loader.load( &mySphere );
  gl::draw( mySphere );

我知道 mySphere 包含纹理坐标作为 vector ,我需要将纹理绑定(bind)到对象,但我找不到一个清楚的例子来说明如何做?我尝试过的一切都给我留下了一个白色的圆圈。

谢谢。

最佳答案

找到我的解决方案。我正在使用 sTexture.bind();但是 sTexture.enableAndBind();是需要的。

 gl::Texture sTexture;
 sTexture = gl::Texture(loadImage(loadAsset("texture.jpg")));
 sTexture.enableAndBind();
 cinder::TriMesh mySphere;
 ObjLoader loader( loadFile( "mySphere/sphere.obj" ) );
 loader.load( &mySphere );
 gl::draw( mySphere );
 sTexture.unbind();

关于c++ - Cinder 如何纹理 .obj trimesh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110455/

相关文章:

c++ - 模板规范的不存在属性

c++ - 右值引用或转发引用?

javascript - 如何使用 Threejs 渲染 360 x 235 度 FOV 图像?

c++ - OpenGL 纹理贴图

api - Openstack 通过 Nova API 创建卷

c++ - 构造函数必须显式初始化没有默认构造函数的成员

c++ - Linux下视频文件+片段着色器

c++ - 如何理解 foo(char (&p)[10]) ?

ios - 使用 isgl3D 未正确进行 3D 对象 (.pod) 中的纹理映射

c++ - C++ 中的未知类型错误