Nanashi-softプログラマ専用POV-Ray


◇POV-Ray (ポブレイ) -球以外にどんな形があるのか?-

物体をプログラムでアニメーションすると言う基礎を覚えました。
次は、球以外の色々な形を置いてみましょう。

○四角い箱

立方体と言う? CGを載せておくので、それを見て判断して下さい(笑)
box(ボックス)で描画します。
box { <始点X座標, 始点Y座標, 始点Z座標>, <終点X座標, 終点Y座標, 終点Z座標> }

はい、私には意味が分かりません(^^;
試行錯誤を行った結果、以下のように考える事にしました。

球と同じように、物体の中心を (x, y, z)とし、サイズを sizeとすると、
box { <x - size/2, y - size/2, z - size/2>, <x + size/2, y + size/2, z + size/2> }
となります。
更にややこしくなったように見えますが、こう書くものだと思ってしまえば、球と同じようにイメージして描く事ができます。

この法則を元に、球で円を描くを四角い箱に置き換えてみました。

#declare I = 0;
#while (I < 3.14 * 2)
    #declare X = cos(I) * 4;
    #declare Y = sin(I) * 4;
    #declare Z = 10;
    #declare Size = 0.3;
    box { <X - Size/2, Y - Size/2, Z - Size/2>, <X + Size/2, Y + Size/2, Z + Size/2>
        pigment { color rgb <1,1,1> }
    }
    #declare I = I + 3.14 * 2 / 32;
#end

light_source { <10, 20, -10> rgb <1,1,1> }

○円柱・円錐

cone(コウン、和製英語的に言うならコーンかな?)で描きます。
cone { <底面X座標, 底面Y座標, 底面Z座標>, 底面の円サイズ, <頂点X座標, 頂点Y座標, 頂点Z座標>, 頂点の円サイズ }
一見難しそうですが、言ってみれば上下の円のサイズを指定しているだけの事です。

球と同じように、物体の中心を (x, y, z)とし、サイズを sizeとすると、
cone { <x, y - size/2, z>, size, <x, y, z + size/2> }
となります。

これも、球で円を描くを置き換えてみます。

#declare I = 0;
#while (I < 3.14 * 2)
    #declare X = cos(I) * 4;
    #declare Y = sin(I) * 4;
    #declare Z = 10;
    #declare Size = 0.3;
    cone { <X, Y - Size/2, Z>, Size, <X, Y + Size/2, Z>, Size
        pigment { color rgb <1,1,1> }
    }
    #declare I = I + 3.14 * 2 / 32;
#end

light_source { <10, 20, -10> rgb <1,1,1> }


※cylinder(スリンダー、和製英語的に言うならシリンダーかな?)を使っても同じ事ができます。

上の方のサイズを 0にすれば、円錐になりますね。

#declare I = 0;
#while (I < 3.14 * 2)
    #declare X = cos(I) * 4;
    #declare Y = sin(I) * 4;
    #declare Z = 10;
    #declare Size = 0.3;
    cone { <X, Y - Size/2, Z>, Size, <X, Y + Size/2, Z>, 0
        pigment { color rgb <1,1,1> }
    }
    #declare I = I + 3.14 * 2 / 32;
#end


○地面

永遠に広がる平面を生成するのが plane(プレイン)です。
plane { <向きX, 向きY, 向きZ>, 位置 }

こいつが最も意味不明です。
向きとは法線ベクトルとかいう意味不明な用語が書かれています。

分かんないので、地面は、
plane { <0, 1, 0>, -1 }
と覚えて置きましょう。

plane { <0, 1, 0>, -1
    pigment { color rgb <1,1,1> }
}
light_source { <10, 20, -10> rgb <1,1,1> }


○ドーナツ型

torusによって描く事ができます。
torus { 半径, リングの太さ }

こいつが不思議です。なぜか位置を指定するパラメータがありません。
と言うことは、世界の中心にしか置けない事になります(謎)

何の役に立つのか良く分からないので、保留にします。


TOPプログラマ専用POV-Ray