形状関連クラス


とりあえず ToyBox2012 を試す為に理解すべき 形状関連のクラスは SimpleMeshWithOctree と Rectangle および Sphere クラス です。

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

SimpleMeshWithOctree クラス
Rectangle クラス
Sphere クラス

SimpleMeshWithOctree クラス
// 抽象クラス Shape は「C# で学ぶレイトレーシング」にて説明していきます。
// 実際には SimpleMeshWithOctree クラスはコンストラクタで生成せず、
// PLY クラスの LoadSmoothedSimpleMeshWithOctree メソッドにて
// 生成されます。
public class SimpleMeshWithOctree:Shape {
	public SimpleMeshWithOctree(...);
}

// PLY クラス
static public class PLY {
	static public SimpleMeshWithOctree
		LoadSmoothedSimpleMeshWithOctree(string inFilePath,
										 int inMaxLevel=4);
}

Rectangle クラス
// 抽象クラス Shape は「C# で学ぶレイトレーシング」にて説明していきます。
public class Rectangle:Shape {
	// inP0,inP1,inP3 で頂点座標を指定
	// 4つ目の頂点はこれら3つの頂点より自動的に計算されます。
	// それぞれの頂点に関連する UV 座標を inUV0,inUV1,inUV2 にて
	// 指定します。4つ目の頂点に関連する UV 座標も自動的に計算されます。
	public Rectangle(Vector3 inP0, Vector3 inP1, VectorP2,
					 Vector2 inUV0,Vector2 inUV1,Vector2 inUV2);
}

Sphere クラス
// 抽象クラス Shape は「C# で学ぶレイトレーシング」にて説明していきます。
public class Sphere:Shape {
	public Sphere(Vector3 inCenter,float inRadius);
	
	// 原点中心、半径 1 の球を生成する
	public Sphere();
}