パラメータリスト

Last-modified: 2006-04-26 (水) 01:09:32

パラメータリスト

パラメータリストとはRi命令のデフォルトの引数以外にくっつく可変長の変数宣言の部分です。
パラメータリストはトークン名とトークン値のペアになっている。

Polygon 3 "P" [1 0 0 0 0 0 -1 0 0]

であれば
"P"がトークン名
[1 0 0 0 0 0 -1 0 0]がトークン値になります。

他の例:

Sphera 0.5 -0.5 0.5 360

に色の値を指定したい場合は下のように値を指定すると、赤い玉が表示されます。

Sphera 0.5 -0.5 0.5 360 "Cs" [1 0 0 1 0 0 1 0 0 1 0 0]

トークン名

パラメータリストのトークン名に使用できる、文字はあらかじめ宣言する必要がある。

Declare "Cs" "varying color"
Sphera 0.5 -0.5 0.5 360 "Cs" [1 0 0 1 0 0 1 0 0 1 0 0]

と宣言されている場合に"Cs"をトークン名として指定することができる。

トークン値

トークン値は、先に宣言している型で、宣言されていなくてはいけません。
uniform color型であれば、
[0 0 1]などのfloatの3変数x頂点数の数字を宣言しなくてはいけません。
型、クラス名は別記します。

inline parse

トークン名には、最初に宣言する方法と、インラインパースという方法で、
宣言と使用を同時にすることもできる。
ただし、この変数はその場でしか使えない。
↓OK

Sphere 0.5 -0.5 0.5 360 "uniform float kd" [1.0 0.5 0.5 0 ]

↓下のKdは使えない

Sphere 0.5 -0.5 0.5 360 "uniform float kd" [1.0 0.5 0.5 0 ]
Sphere 0.5 -0.5 0.5 360 "kd" [1.0 0.5 0.5 0 ]

同名の名前が使用された場合はインラインパースは、Declare宣言よりも優先される。

Declare "Kd" "uniform color"
Sphere 0.5 -0.5 0.5 360 "uniform float kd" [1.0 0.5 0.5 0 ]

配列

Declareでは配列も宣言することができる。詳しくはDeclareのところで説明する。

Sphere 0.5 -0.5 0.5 360 "uniform float[4] kd" [1.0 0.5 0.5 0 ]

storage classes

class名説明
varying可変長クラス
vertex静的可変長クラス
uniform固定長クラス
constant静的固定長クラス

type

floatフロート型
color色情報
point点の位置を表す(向きではない)
hpoint同次座標で点を表す
vectorベクトル、向きを表す
normal単位ベクトル
matrix4x4の行列を表す
string文字列を表す