SimpleDRT クラス


SimpleDRT クラスは単純な分散レイトレーサのクラスです。 ToyBox2012 ではここで説明する以外のクラスも使われていますが、 それらに関しては「C# で学ぶ Ray Tracing」の方で 説明していきます。

SimpleDRT クラス
// DRTWithAreaLight は「C# で学ぶ Ray Tracing」の方で説明していきます。
public class SimpleDRT:DRTWithAreaLight {
	// inMaxRayDepth: レイの最大反射・屈折回数
	// inNumOfJitterCellSqrtForPrimaryRay: 1次レイのジッタ数の平方根
	// inNumOfJitterCellSqrtForGlossy: 光沢面でのジッタ数の平方根数
	// inBackgroundColor: 背景色
	public SimpleDRT(int inMaxRayDepth,
					 int inNumOfJitterCellSqrtForPrimaryRay,
					 int inNumOfJitterCellSqrtForGlossy,
					 RGB inBackgroundColor);

	// 出力画像ファイルを指定します。
	// 拡張子は .ppm もしくは .exr を指定して下さい。
	// 正常に処理が行われた場合は true を返します。
	public bool SetDisplay(string inFilePath);

	// inXResolution: X 軸方向の解像度を指定します。
	// inYResolution: Y 軸方向の解像度を指定します。
	// inPixelAspectRatio: ピクセルのアスペクト比を指定します。
	public void SetFormat(int inXResolution,int inYResolution,
						  float inPixelAspectRatio);
	
	// inFStop: レンズの F 値を指定します。
	// inFocalLength: レンズの焦点処理を指定します。
	// inFocusDistance: ピントを合わせる位置(レンズからの距離)を
	//					指定します。
	public void SetDepthOfField(float inFStop,float inFocalLength,
								float inFocusDistance);

	// inFovHorizontal: 水平画角をラジアンで指定します。
	public void SetFovHorizontal(float inFovHorizontal);

	// レンダリングする範囲を指定します。
	// 0 でスクリーンの右端(上端)、1 でスクリーンの左端(下端)です。
	public void SetCropWindow(float inLeft,float inRight,
							  float inTop,float inBottom);

	// レンダリングの状況報告としてデフォルトのメソッドを使用します
	// (コンソールへの出力)。
	// 独自のメソッドを使用したい場合は、次の OnUpdate ハンドラに
	// メソッドを指定して下さい。
	public void UseDefaultUpdateFunc();

	public delegate void UpdateHandler(float inRenderPercent);
	public event UpdateHandler OnUpdate;

	// 与えられたシーンをレンダリングします。
	public void Render(SceneElementList inSceneElementList);
}