2

我是 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 包含纹理坐标作为矢量,我需要将纹理绑定到对象,但我找不到一个明确的例子来说明如何?我尝试过的一切都给我留下了一个白色的圆圈。

谢谢。

4

1 回答 1

1

找到了我的解决方案。我正在使用 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();
于 2014-09-30T15:00:55.477 回答