gluTessNormal(3) ポリゴンに対して法線を指定する

書式

void gluTessNormal( GLUtesselator* tess,


GLdouble valueX,
GLdouble valueY,
GLdouble valueZ )

delim $$

引き数

tess
テセレーションオブジェクト(gluNewTess を使って作る) を指定する。
valueX
法線の最初の成分を指定する。
valueY
法線の 2 番目の成分を指定する。
valueZ
法線の 3 番目の成分を指定する。

説明

gluTessNormal は、プログラムで定義しようとしている ポリゴンに対して法線を記述する。 全ての入力データは、テセレーション処理の前に 3 つの座標軸のどれかに 垂直な平面に投影される。 また、出力される全ての三角形は、法線について反時計回りの向きを持つ (指定する法線の符号を反転させることにより、時計回りに向けることができ る)。 例えば、全てのポリゴンが X-Y 平面上にあることが分かっていれば、 ポリゴンをレンダリングする前に gluTessNormal(tess, 0.0, 0.0, 1.0) を呼ぶこと。

法線として (0.0, 0.0, 0.0) (初期値)を指定すると、法線は次のように 決められる。 まず、法線の向き(符号も含む)は、平面を頂点群にフィッティングすることに よって決められる。 その際には頂点同士がどのように繋がっているのかは考慮されない。 ここでは、入力データはほぼ平面上にあることが期待されている。 そうでない場合は、3 つ座標軸のどれかに垂直な投影は、実質的に 形状が変わることがある。 法線の符号は、入力された全ての経路の符号付き面積の和が負にならない方向 に決められる(反時計回りが正の面積を持つ)。

指定された法線は、次に gluTessNormal が呼び出されて変更される までは残る。