GLUNURBSSURFACE
Section: Misc. Reference Manual Pages (3G)
索引
xjman
名前
gluNurbsSurface
- NURBS 曲面の形状を定義する
書式
void gluNurbsSurface(
GLUnurbs* nurb,
GLint sKnotCount,
GLfloat* sKnots,
GLint tKnotCount,
GLfloat* tKnots,
GLint sStride,
GLint tStride,
GLfloat* control,
GLint sOrder,
GLint tOrder,
GLenum type )
delim $$
引き数
- nurb
-
NURBS オブジェクト(gluNewNurbsRenderer を使って作る)を指定する。
- sKnotCount
-
パラメータ u 方向におけるノット数を指定する。
- sKnots
-
sKnotCount の配列を指定する。
この配列は、パラメータ u 方向についてノット値が単調増加となるように並ぶ。
- tKnotCount
-
パラメータ v 方向におけるノット数を指定する。
- tKnots
-
sKnotCount の配列を指定する。
この配列は、パラメータ v 方向についてノット値が単調増加となるように並ぶ。
- sStride
-
control 内のパラメータ u 方向における、
連続する制御点の間のオフセット(単精度の浮動小数点値)を指定する。
- tStride
-
control 内のパラメータ v 方向における、
連続する制御点の間のオフセット(単精度の浮動小数点値)を指定する。
- control
-
NURBS 曲面の制御点を含む配列を指定する。
パラメータ u および v 方向における連続する制御点の間の
オフセットは、sStride と tStride で指定する。
- sOrder
-
パラメータ u 方向における NURBS 曲面の階数を指定する。
階数は次数より 1 大きいので、u について 3 次の曲面は
階数 4 を持つ。
- tOrder
-
パラメータ v 方向における NURBS 曲面の階数を指定する。
階数は次数より 1 大きいので、u について 3 次の曲面は
階数 4 を持つ。
- type
-
曲面の種類を指定する。
type は、正しい 2 次元の評価型(GL_MAP2_VERTEX_3 や
GL_MAP2_COLOR_4 など)であれば何でもよい。
説明
NURBS (Non-Uniform Rational B-Spline, 非一様有理 B-スプライン)曲面の
形状を記述するには、NURBS 曲面の定義の内部で gluNurbsSurface
を使う。
NURBS 曲面の定義の開始を示すには gluBeginSurface コマンドを
使う。
NURBS 曲面の終わりを示すには gluEndSurface コマンドを使う。
gluNurbsSurface は NURBS 曲面の定義の内部だけで使うこと。
位置座標・テクスチャ座標・色座標は、
gluBeginSurface/gluEndSurface で括られた部分で
それぞれ個別に gluNurbsSurface を表すことにより
曲面に対応づける。
色・位置・テクスチャデータのそれぞれについて、ひとつの
gluBeginSurface/gluEndSurface の対の間に
gluNurbsSurface を二回以上呼ぶことはできない。
曲面の位置を記述するには gluNurbsSurface をちょうど一回だけ
呼び出さなければならない(type は GL_MAP2_VERTEX_3 または
GL_MAP2_VERTEX_4 である)。
gluBeginTrim と gluEndTrim の呼び出しの間に
gluNurbsCurve コマンドと gluPwlCurve コマンドを
呼び出すことにより、NURBS 曲面をトリムすることができる。
u 方向に sKnotCount 個、
v 方向に tKnotCount 個のノットを持ち、かつ階数
sOrder および tOrder を持つ NURBS 曲面を
gluNurbsSurface で記述する場合には、
(sKnotCount - sOrder) $times$ (tKnotCount - tOrder)
個の制御点が必要である。
使用例
以下のコマンドは法線を持ち、テクスチャ処理された NURBS 曲面を
レンダリングする。
テクスチャ座標と法線もまた NURBS 曲面である:
gluBeginSurface(nobj);
gluNurbsSurface(nobj, ..., GL_MAP2_TEXTURE_COORD_2);
gluNurbsSurface(nobj, ..., GL_MAP2_NORMAL);
gluNurbsSurface(nobj, ..., GL_MAP2_VERTEX_4);
gluEndSurface(nobj);
関連項目
gluBeginSurface(3G), gluBeginTrim(3G), gluNewNurbsRenderer(3G),
gluNurbsCurve(3G),
gluPwlCurve(3G)
Index
- 名前
-
- 書式
-
- 引き数
-
- 説明
-
- 使用例
-
- 関連項目
-
Time: 07:01:13 GMT, January 12, 2009