0

質問 #6663300 から、glut 関数が適切ではないことを読みました。glut 関数の代わりに glu 描画プリミティブを使用する必要があります。

そのため、GLUquadricObj の使用方法についていくつか質問があります。どこに行っても、GLUquadricObj は通常ポインターとして使用され、1 つの描画フェーズの最後に新しいインスタンスが作成されて破棄されます。GLUquadricObj の参照を gluCylinder のような関数に渡すために、ポインタなしで GLUquadricObj が使用される特定の時間はありますか?

2 番目の質問では、プログラムが終了するまで継続的に更新されるアニメーションがあるとします。描画されるフレームごとに GLUquadricObj を作成して削除する必要がありますか? または、作成した GLUquadricObj を 1 つだけ残して、プログラムが閉じたときに削除することはできますか? アニメーション全体を通して GLUquadricObj ポインタを 1 つだけ保持したい場合、描画リストを使用する必要がありますか?

GLUquadricObj *qobj = 0; qobj = gluNewQuadric();

gluCylinder(qobj, CylinderRadius, CylinderRadius, 長さ, スライス, スタック);

gluDeleteQuadric(qobj);

GLUquadricObj をローカルではなくグローバルにする方が効率的ですか? または、描画されたフレーム内で GLUquadricObj を作成および破棄したままにする必要がありますか?

4

1 に答える 1

0

is there any given time where GLUquadricObj is used without pointer so that you pass reference of the GLUquadricObj into functions like gluCylinder?

I don't think so. declaring a GLUquadricObj variable probably doesn't set its internal state correctly, so don't do it. (although i haven't looked at the glu source so i can't say for sure)

is it any more efficient to have the GLUquadricObj being global rather than local?

Probably very slightly.

or should I just leave GLUquadricObj being created and destroyed within a drawn frame?

Yes. Don't worry about efficiency if you are only learning opengl, the difference this change would make is completely undetectable. Just leave it the way it is.

于 2013-01-23T18:25:12.250 に答える