我是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();