パラメータリスト
パラメータリストとは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 | 単位ベクトル |
matrix | 4x4の行列を表す |
string | 文字列を表す |