-1

私はopengles1.1を使用していますが、独自のマトリックスを使用して作業したいので、次のように呼ばれるfpsカメラマトリックス関数を作成しました。fpsmatrixupdate(); それから私はそれをこのように呼びます:

fpsmatrixupdate(); //this function generated a matrix called mat
drawbox(min,max)

別のボックスを描画しようとするまで、すべてがうまく機能します。

fpsmatrixupdate(); //this function generated a matrix called mat
drawbox(min,max);
glLoadIdentity();  // I tried to call this before drawbox2 but box2 doesn't show
drawbox2(min,max);

質問:なぜこれが機能するのですか?

fpsmatrixupdate(); //this function generated a matrix called mat
drawbox(min,max);
glLoadMatrixf(mat);  // mat is fps camera update function generated matrix,
drawbox2(min,max);

別の場所に200個のボックスを描画する場合、glLoadMatrixf(mat)を200回呼び出す必要がありますか?マトリックスをリセットするためにglLoadMatrixf(mat)を呼び出さない場合、2番目のボックスの変換は最初のボックスに基づいています。

誰かがコードを見たい場合は、このデモからほぼ99%コピーされます:http: //www.codesampler.com/oglsrc/oglsrc_5.htm#ogl_fps_controls

4

1 に答える 1

2

はい、オブジェクトごとの変換に基づいてオブジェクトを配置する場合は、毎回 glLoadMatrix を実行する必要があります。簡単にアクセスできるように、一度変換行列を計算し、各オブジェクトのシーン データに格納することは理にかなっています。

于 2012-12-09T20:59:30.387 に答える