ライト関連クラス


とりあえず ToyBox2012 におけるライト関連のクラスは以下のとおりです。

ToyBox2012 では上記以外のクラスも使われていますが、 それらに関しては「C# で学ぶ Ray Tracing」の方で 説明していきます。

DirectionalLight クラス
PointLight クラス
SimpleRectangleLight クラス

DirectionalLight クラス
// ここでは平行光源を設定する為に必要な情報を記しています。
// 派生元の SingleColorLight クラス等の詳細など、
// 実際のレイトレーサ用のコードでは、ここで示す以外のメソッドも
// 実装されています。
// 詳しくは解説ページ「C# で学ぶ Ray Tracing」を参照して下さい。
public class DirectionalLight:SingleColorLight {
	public DirectionalLight(Vector3 inDir,RGB inColor);
}

PointLight クラス
// ここでは点光源を設定する為に必要な情報を記しています。
// 派生元の SingleColorLight クラス等の詳細など、
// 実際のレイトレーサ用のコードでは、ここで示す以外のメソッドも
// 実装されています。
// 詳しくは解説ページ「C# で学ぶ Ray Tracing」を参照して下さい。
public class PointLight:SingleColorLight {
	public PointLight(Vector3 inPosition,RGB inColor);
}
SimpleRectangleLight クラス
// ここでは四角形の面光源を設定する為に必要な情報を記しています。
// 派生元の Light クラス等の詳細など、
// 実際のレイトレーサ用のコードでは、ここで示す以外のメソッドも
// 実装されています。
// 詳しくは解説ページ「C# で学ぶ Ray Tracing」を参照して下さい。
public class SimpleRectangleLight:Light {
	// inBasePoint から inSpan1 および inSpan2 を
	// ベクトルとする四角形の面光源を生成します。
	// inNumOfGrid1 と inNumOfGrid2 は基底ベクトル1および2の方向の
	// シャドウレイを生成する時のグリッド数パラメータです。
	// inNumOfGrid1*inNumOfGrid2 個のシャドウレイが影の計算に使用されます。
	public SimpleRectangleLight(RGB inColor,
								Vector3 inBasePoint,
								Vector3 inSpan1,Vector3 inSpan2,
								int inNumOfGrid1,int inNumOfGrid2);
}