RenderManのお勉強(物体形状)


円盤(Disk)


Diskのサンプル

# disk01.rib
Display "disk01.tiff" "file" "rgba"
Projection "perspective"
WorldBegin
	Disk 2 1 360
WorldEnd

Diskの実行例



Diskの説明

Diskの呼び出し方
Disk height radius thetamax

  1. xy平面に平行で、中心(0,0,height)で半径radiusの円盤を作り出すことができます。thetamaxによって円盤の出来る範囲を指定できます。通常は360度で円盤になります。
  2. 円柱や円錐は底面が空いているので、底面などを作るときに利用することができます。

トーラス(Torus)


Torusのサンプル

# torus01.rib
Display "torus01.tiff" "file" "rgba"
Projection "perspective"
Translate 0 0 2.5  # カメラ位置の設定
WorldBegin
	Rotate 30 1 0 0
	Rotate 30 0 1 0
	Torus 1.5 0.25 0 360 360
WorldEnd

Tourusの実行例



Torusの説明

Torusの呼び出し方
Torus majorradius minorradius phimin phimax thetama

  1. トーラス作り出すことが出来ます。
  2. トーラスの半径はmajorradiusで指定し、minorradiusではトーラスのチューブの半径をしています。トーラスの中心は原点にあり、z軸方向に高さ方向(?)がきます。phiminとphimaxでチューブの出来る範囲を指定し、thetamaxでトーラスので出来る範囲を指定します。

放物面(Paraboloid)


Paraboloidのサンプル

# paraboloid01.rib
Display "paraboloid01.tiff" "file" "rgba"
Projection "perspective"
Translate 0 0 5
WorldBegin
	Rotate -90 1 0 0
	Paraboloid 2 0 3 360
WorldEnd

Paraboloidの実行例



説明

Paraboloidの呼び出し方
Paraboloid rmax zmin zmax thetamax
  1. Paraboloidとは放物面のことです、実行例と同じものを平行投影でみると、言葉の意味がハッキリわかります。
  2. xz平面上の放物線をz軸を中心に回転させて出来る放物面を作り出します。zminとzmaxで描く高さを決め、rmaxは上部での半径となっています。thetamaxはz軸回りの回転角度を指定(放物面の出来る範囲)を指定しています。
平行投影でみた場合

双曲面(Hyperboloid)


Hyperboloidのサンプル

# hyperboloid01.rib
Display "hyperboloid01.tiff" "file" "rgba"
Projection "perspective"
Translate 0 0 2
WorldBegin
	Rotate -90 1 0 0
	Hyperboloid 1.2 0 -1 0 1.2 1 360
WorldEnd

Hyperboloidの実行例



説明

Hyperboloidの呼び出し方
Hyperboloid px1 py1 pz1 px2 py2 pz2 rmax thetamax
  1. Hyperboloidとは双曲面のことです、実行例と同じものを平行投影でみると、言葉の意味がハッキリわかります。
  2. 点(px1,py1,pz1)と点(px2,py2,pz2)を結ぶ線分を0度からthetamax度まで移動させて出来る曲面(線織面)が作り出されます。

平行投影でみた場合


凸多角形(Polygon)(その1)

Polygonは凸多角形を作り出す命令です。パラメータによって色々な指定ができますが、その1では単純な頂点位置だけの指定を扱います。

Polygonその1のサンプル

# polygon01.rib
Display "polygon01.tiff" "file" "rgba"
Projection "perspective"
Translate 0 0 2
WorldBegin
	Color [1 1 0]
	Polygon "P" [  1  1 0
                      -1  1 0
                      -1 -1 0
                       1 -1 0 ]
WorldEnd

Polygonその1の実行例



説明

Polygonの呼び出し方(頂点座標のみ)
Polygon "P" [頂点の座標の並び ]

  1. Polygonでは単純な凸多角形を作り出すことが出来ます。
  2. "P"を指定した後に、[と]の間に頂点の座標を書き並べます。データの並びかは、x座標、y座標、z座標の順で、反時計回りの順に並べます。、データの個数が不定となる場合には、[と]で囲って、データの塊しています。
  3. サンプルでの四角形の頂点は、(1,1,0)→(-1,1,0)→(-1,-1,0)→(1,-1,0)となっています。
  4. "P"はおそらくPositionの略だと思われます。

穴付きを含む多角形(General Polygon)

GeneralPolygonでは、穴あきの多角形を含む一般の多角形を作り出すことが出来ます。ここでは、単純な頂点位置だけの指定を扱います。

GeneralPolygonのサンプル(穴なし)

# gpolygon02.rib: general polygon sampile rib file
Display "gpolygon02.tiff" "file" "rgba"
Projection "perspective" "fov" [60]
Translate -0.5 -0.5 1 
WorldBegin
	Color [1 1 0]

	GeneralPolygon [5]
               "P"  [0.0 0.0 0
                     1.0 0.0 0
                     1.0 1.0 0
	               0.5 0.5 0
                     0.0 1.0 0]
WorldEnd

GeneralPolygonの実行例(穴なし)



GeneralPolygonのサンプル(穴付き)

# gpolygon01.rib: general polygon sampile rib file
Display "gpolygon01.tiff" "file" "rgba"
Projection "perspective" "fov" [60]
Translate -0.5 -0.5 1 
WorldBegin
	Color [1 1 0]
	GeneralPolygon [4 3]
               "P"  [0 0 0  #外側の多角形の頂点位置
                      1 0 0
                      1 1 0
                      0 1 0

                     0.1 0.1 0 #穴の多角形の頂点位置
                     0.9 0.1 0
                     0.5 0.9 0 ]
WorldEnd

GeneralPolygonの実行例(穴付き)



説明

GeneralPolygonのの呼び出し方(頂点座標のみ)
GeneralPolygon [頂点数の並び] P" [頂点の座標の並び ]

  1. GeneralPolygonでは、穴あきの凸多角形を作り出すことが出来ます。
  2. 頂点数の並びには、最初の値が外側の多角形の頂点の個数、それ以降が内側の穴を表す頂点の個数が来ます。頂点の座標の並びには、それぞれの頂点の座標が書かれています。
  3. 穴なしの例では、頂点の並びには、外側の多角形の頂点数5だけになっています。
  4. 穴付きの例では、頂点の並びには、外側の多角形の頂点数4と穴の多角形の頂点数3が書かれています。
  5. PixieやAqsisでレンダリングしてみたのですが、頂点の位置によってはきちんとレンダリング出来ないことがありました。扱いの難しい形状なのでしょうか?

点(Point)

点を作り出す命令を扱います。

Pointのサンプル(位置のみ)

# point01.rib
Display "point01.tiff" "file" "rgba"
Projection "perspective"
Translate 0 0 1
WorldBegin
	Points "P" [  1  1 1
                     -1  1 2
                     -1 -1 3
                      1 -1 4]
WorldEnd

Pointのサンプル(位置のみ)の実行例

Pixieではきちんとレンダリング出来なかった(右上の点が切れてしまう)ので、Aqsisでレンダリングしました。


Pointのサンプル(大きさ指定付き)

# point02.rib
Display "point02.tiff" "file" "rgba"
Projection "perspective"
Translate 0 0 1
WorldBegin
Points "P" [ 1 1 1 -1 1 2 -1 -1 3 1 -1 4] "width" [0.5 1.0 2.0 2.0]
WorldEnd

Pointのサンプル(大きさ指定付き)の実行例

これサンプルは、Pixieできちんとレンダリング出来ました。

複数の凸多角形(PointsPolygons)

PointsPolygonsは各面が凸多角形となっている形状(多面体とは限らない)を作り出すことが出来ます。

PointsPolygonsのサンプル

# pointspolygon01.rib : PointsPolygons sample rib file
Display "pointspolygon01.tiff" "file" "rgba"
Projection "perspective" "fov" [60]
Translate 0 -0.2 1
WorldBegin
	Rotate 30 1 0 0
	LightSource "distantlight" 1
             "intensity" [6]
             "to" [0 -1 0]
	LightSource "ambientlight" 2
	     "intensity" [0.5]
	Surface "plastic"
#	Rotate 30 1 0 0
	PointsPolygons 
             [3 3 3 3]     # 各面の頂点数
	       [0 1 2          # 頂点番号0,1,2で作られる多角形
              0 2 3          # 頂点番号0,2,3で作られる多角形
              0 3 1          # 頂点番号0,3,1で作られる多角形
              3 2 1]          # 頂点番号03,2,1で作られる多角形
	     "P" [0 1 0.6  # 0番の頂点位置
                 0 0 0     # 1番の頂点位置 
                  1 0 1    # 2番の頂点位置
                  -1 0 1]  # 3番の頂点位置
	     "Cs" [1 1 1   # 0番の頂点色
                   1 0 0   # 1番の頂点色 
                   0 1 0   # 2番の頂点色
                   0 0 1]  # 3番の頂点色
WorldEnd

PointsPolygonsの実行例



説明

PointsPolygonの呼び出し方
PointsPolygons [頂点数の並び] [各面の頂点を表す頂点番号の並び] "P" [頂点座標の並び] その他のパラメータ

  1. このサンプルでは、光源の設定等を行っているので、光源編 も参照してください。
  2. このさんぷるでは、PointsPolygonsを四面体を作り出すの利用しています。
  3. [頂点数の並び]には、各面の頂点数が並んでいます。このサンプルでは全ての面が三角形なので、[3 3 3 3]となっています。ここに並んでいる頂点数の数(リストの長さ)から作り出す面の個数がわかります。この場合は,4個の面が作り出されます。
  4. [各面の頂点を表す頂点番号の並び]には、各面を構成している頂点の番号が並んでいます。頂点の番号は0から始まっています。「"P" [頂点座標の並び]」には、頂点座標の値が並んでいます。最初の3つの値が0番目の頂点座標を表し、その後の3個の値が1番目の頂点座標を表すことになっています。
  5. Polygon命令に対応してGeneralPolygon命令があるよう、各面が凸多角形とは限らない形状を作り出すPointsGeneralPolygonsという命令もあります。ただし、呼び出し方はちょっと複雑になります。


演習

  1. 先頭のRotateの部分をコメントとして、現在コメントとなっているRotateの部分のコメントを外してレンダリングするとどのような画像となるでしょか?また、その理由はなぜでしょうか?

PointsPolygonsのサンプル(その2)

# pointspolygon02.rib : PointsPolygons sample rib file
Display "pointspolygon02.tiff" "file" "rgba"
Projection "perspective" "fov" [60]
Translate 0 0 3
WorldBegin
	Rotate 15 1 0 0
	LightSource "distantlight" 1
             "intensity" [3]
             "to" [0 -1 0]
	LightSource "ambientlight" 2
	     "intensity" [0.5]
	Surface "plastic"
	PointsPolygons 
             [3 3 3 3 4]  # 各面の頂点数
	       [0 1 2          # 頂点番号0,1,2で作られる多角形
              0 2 3          # 頂点番号0,2,3で作られる多角形
              0 3 4          # 頂点番号0,3,4で作られる多角形
              0 4 2          # 頂点番号0,4,2で作られる多角形
              4 3 2 1]      # 頂点番号4,3,2,1で作られる多角形
	     "P" [ 0  1   0    # 0番の頂点位置
                  -1 0 -1    # 1番の頂点位置
                    1 0 -1    # 2番の頂点位置
                    1 0   1    # 3番の頂点位置
                  -1 0  1]    # 4番の頂点位置
	     "Cs" [0 0 0      # 0番の頂点色
                   1 0 0      # 1番の頂点色 
                   0 1 0       # 2番の頂点色
                   0 1 1      # 3番の頂点色
                   1 0 1]      #40番の頂点色
WorldEnd

実行例



幾何的プリミティブ変数(Geometric Primitive Variable)

Polygon呼び出しなどで現れる"P"はそれ以降のデータの塊が頂点位置をあらわす情報であることを示しています。この"P"を幾何的プリミティブ変数と呼んでいます。位置を表す"P"以外にも、法線を表す"N"などあります。標準的な幾何的プリミティブ変数を表にまとめておきます。

意味名前情報を表すに必要な数値の個数
位置(Position)"P"3
位置のz座標値"Pz"1
同時座標による位置"Pw"4
法線(Normal)"N"3
色(Color)"Cs"一般的には3
不透明度(Opacity)"Os"一般的には3
テクスチャ座標値"st"2
テクスチャ座標値"s"1
テクスチャ座標値"t"1

  1. "Pz"はハイトフィールド(height filed)などの時に利用?

Topページに戻る
2008年02月02日(土) 17:13:41 Modified by m_riho

添付ファイル一覧(全14件)
81da5703.jpg (6.38KB)
Uploaded by m_riho 2008年01月05日(土) 13:14:05
cb07f32c.jpg (27.41KB)
Uploaded by m_riho 2008年01月05日(土) 12:51:19
7804a477.jpg (7.82KB)
Uploaded by m_riho 2008年01月05日(土) 12:48:39
1e2ac3b6.jpg (5.20KB)
Uploaded by m_riho 2008年01月04日(金) 21:41:34
edaedcc9.jpg (4.75KB)
Uploaded by m_riho 2008年01月04日(金) 21:37:52
e4fbdde2.jpg (2.76KB)
Uploaded by m_riho 2008年01月04日(金) 21:28:06
422fedec.jpg (4.78KB)
Uploaded by m_riho 2008年01月04日(金) 21:22:05
430c8b8b.jpg (4.06KB)
Uploaded by m_riho 2008年01月04日(金) 20:21:38
d2d0e538.jpg (5.77KB)
Uploaded by m_riho 2008年01月04日(金) 20:16:03
dc4355ed.jpg (3.06KB)
Uploaded by m_riho 2008年01月04日(金) 17:54:37
f1253a1f.jpg (8.67KB)
Uploaded by m_riho 2008年01月04日(金) 17:12:11
c85bb1d4.jpg (7.89KB)
Uploaded by m_riho 2008年01月04日(金) 17:11:40
f1366076.jpg (4.90KB)
Uploaded by m_riho 2008年01月04日(金) 16:51:32
787b3371.jpg (4.66KB)
Uploaded by m_riho 2008年01月04日(金) 16:49:36



スマートフォン版で見る