0

glBegin と glEnd を使用して単純なクワッドを描画しました。for ループを使用して、クワッドのコピーを作成し、3D 空間で y 軸を中心に回転させます。問題は、クワッドが前方にしか見えないことです。後ろのこれらは表示されません。問題は法線ベクトル内にあり、その方向は私に向かっていると思います。1 つのクワッドに対して 2 つの法線ベクトルを定義する可能性はありますか?

4

2 に答える 2

3

背面カリングを無効にする必要があるようです:

glDisable(GL_CULL_FACE);
于 2011-11-10T11:51:36.733 に答える
0

後ろのこれらは表示されません。問題は法線ベクトル内にあると仮定します。

問題は法線ベクトルではなく、OpenGL が表側と裏側を考慮するものです。画面上の頂点の巻き方によって何が決まるか。頂点が反時計回りの順序で画面上にある場合、デフォルトで OpenGL は前面を想定します。背面カリングが有効になっている場合、背面は描画されません。カリングを無効にすることはできますが、おかしなライティング結果が得られます。

最善の方法は、背面を独自のクワッド セットで明示的に描画することです。巻き線と法線が調整されました。

于 2011-11-10T13:15:48.380 に答える