2012-04-07 11 views
4

iOS 5.0フレームワークのGLKitについて簡単に質問してください。iOS 5.0 GLKit GLKTextureLoader- glBindTextureはどこにありますか?

GLKTextureLoaderを使用している場合は、現在アクティブなテクスチャユニットにテクスチャをロードするだけですか?私は例を見ていますが、変数xのGLKTextureInfoがGL_TEXTURE0にバインドされていると言わなければならない場所はどこにもありません。

GLKTextureLoaderと組み合わせてglActiveTextureを使用する例がありますが、自動的にアクティブなテクスチャユニットにロックされるような感じです。ロードしたら、テクスチャ座標を渡すだけです。

ありがとうございます。

+0

あなたは今までにこの質問への答えを見つけましたか? – cheeesus

答えて

3

GLKTextureLoaderがGLKTextureInfoオブジェクトを読み込んだ後、自分でテクスチャをバインドする準備が整いました。 GLKLTextureLoaderの読み込みが終了すると、ロードされたテクスチャはテクスチャユニットにバインドされません。あなたが描画する準備ができたら、あなたは呼び出し:

glActiveTexture(GL_TEXTURE0); // to specify texture unit 0 
glBindTexture(textureInfo.target, textureInfo.name); 

それはGLKitクラスの内部で何が起こっ証明する素晴らしい仕事をしていませんように私は非常に、本Learning OpenGL ES for iOS: A Hands-On Guide to Modern 3D Graphics Programmingをreccommendでしょう。また、GLKTextureLoaderを使用するこのデモコードを参照することもできます。https://github.com/joekim/MobileMeetup/tree/master/GLKitDemo

2

はい、オートメーションが続行されています。第二テクスチャをロードした後、そのテクスチャは、その後GL_TEXTURE0にバインドされますが、あなたはGL_TEXTURE1でそれをしたい場合:

glActiveTexture(GL_TEXTURE1); 
glBindTexture(someTexture.target, someTexture.name); 
glUniform1i(u_someSampler, 1); // u_someSampler retrieved from prev call to glGetUniformLocation 
関連する問題