POV-Rayを使ってみよう


画像の出力形式

BMP形式の画像ファイルは大きくて扱いにくいので、本授業では 提出する画像はPNG形式のみとします。

POV-RAYが出力する画像のデフォルト形式が何であるかは、 プラットフォームや設定によって異なります。 大学のWindows環境で利用できるPOV-RAY は、現在PNG形式が デフォルトとなっています。 異なる環境で作業をする時に確実にPNG形式で画像ファイルを 出力するには、"Run"するときにPOV-Rayのウィンドウの 上部にある入力窓に +FN と指定して下さい。


提出する画像ファイルはPNG形式のみ受け付けます ので注意して下さい。


形状(Shape)やテクスチャの定義は include ファイルで定義されています。

デフォルトでは、includeするファイルは C:\Program Files\POV-RAY for Windows v3.6/include/ (64bitのWindows環境だと C:\Program Files (x86)\POV-RAY for Windows v3.6/include/ ) の下にあります(バージョン番号は場合により異なります)。

たとえば、テクスチャに使っている"T_Stone数字" の定義は stones.inc にあって、「stones.incはstones1.incとstones2.incを 読み込む」と記述されています。 そしてstones1.inc の中に以下の記述があります。

stones1.inc(抜粋)
//------------ White & Pinkish Tan Marble
...
#declare T_Stone12 =
texture{T_Grnt23 scale <1, 5, 1> rotate <0, 0, 50>
        finish{ambient 0.2 crand 0.03}
}
texture{T_Grnt0a scale <1, 3, 2> rotate <0, 0, -30>
        finish{phong 1.0 phong_size 90}
}

物体の形に使っている Sphere などは "shapes.inc" で定義されています。 立方体(Cube)の定義はshapes.incが読み込むshapes_old.incで定義されています。 正十二面体(Dodecahedron)は shapes2.inc で定義されているので、 これを使う場合はシーンファイルの中で新たにinclude文を加えて

#include "shapes2.inc"
と書く必要があります。


簡単な例(球) hajimete.pov

参考書「POV-Rayではじめるレイトレーシング【改訂第2版】」の順番にそって シーンファイルを作る練習をしましょう。


hajimete.pov
#include "colors.inc"
#include "shapes.inc"
#include "stones.inc"

camera {
  location <5,5,-10>
  look_at <0,0,0>
  angle 20
}

light_source { <0,10,-10> color White }

object {
  Sphere
  texture { T_Stone12 }
}

照明の明るさアップ hajimete2.pov


hajimete2.povへの変更
*** hajimete.pov	Sun Apr 13 16:46:54 2008
--- hajimete2.pov	Sun Apr 13 16:46:54 2008
***************
*** 9,13 ****
  }
  
! light_source { <0,10,-10> color White }
  
  object {
--- 9,13 ----
  }
  
! light_source { <0,10,-10> color White*2 }
  
  object {

照明を増やす hajimete3.pov


hajimete3.povへの変更
*** hajimete2.pov	Sun Apr 13 16:46:54 2008
--- hajimete3.pov	Sun Apr 13 16:46:54 2008
***************
*** 9,13 ****
  }
  
! light_source { <0,10,-10> color White*2 }
  
  object {
--- 9,14 ----
  }
  
! light_source { <0,10,-10> color White }
! light_source { <5,0,-10> color White }
  
  object {

テクスチャを変える(違う石) hajimete4.pov


hajimete4.povへの変更
*** hajimete3.pov	Sun Apr 13 16:46:54 2008
--- hajimete4.pov	Sun Apr 13 16:46:54 2008
***************
*** 14,17 ****
  object {
    Sphere
!   texture { T_Stone12 }
  }
--- 14,17 ----
  object {
    Sphere
!   texture { T_Stone13 }
  }

テクスチャを変える(木目) hajimete5.pov


hajimete5.povへの変更
*** hajimete4.pov	Sun Apr 13 16:46:54 2008
--- hajimete5.pov	Sun Apr 13 16:46:54 2008
***************
*** 2,5 ****
--- 2,6 ----
  #include "shapes.inc"
  #include "stones.inc"
+ #include "woods.inc"
  
  camera {
***************
*** 14,17 ****
  object {
    Sphere
!   texture { T_Stone13 }
  }
--- 15,18 ----
  object {
    Sphere
!   texture { T_Wood7 }
  }

形を変える(箱) hajimete6.pov


hajimete6.povへの変更
*** hajimete5.pov	Sun Apr 13 16:46:54 2008
--- hajimete6.pov	Sun Apr 13 16:46:54 2008
***************
*** 14,18 ****
  
  object {
!   Sphere
    texture { T_Wood7 }
  }
--- 14,18 ----
  
  object {
!   Cube
    texture { T_Wood7 }
  }

形を変える(正十二面体) hajimete7.pov


hajimete7.povへの変更
*** hajimete6.pov	Sun Apr 13 16:46:54 2008
--- hajimete7.pov	Sun Apr 13 16:46:54 2008
***************
*** 3,6 ****
--- 3,7 ----
  #include "stones.inc"
  #include "woods.inc"
+ #include "shapes2.inc"
  
  camera {
***************
*** 14,18 ****
  
  object {
!   Cube
    texture { T_Wood7 }
  }
--- 15,19 ----
  
  object {
!   Dodecahedron
    texture { T_Wood7 }
  }

テクスチャの向きを変える hajimete8.pov

年輪の向きを変える。 (p.223図8-10回転の向き)


hajimete8.povへの変更
*** hajimete7.pov	Sun Apr 13 16:46:54 2008
--- hajimete8.pov	Sun Apr 13 16:46:54 2008
***************
*** 16,19 ****
  object {
    Dodecahedron
!   texture { T_Wood7 }
  }
--- 16,22 ----
  object {
    Dodecahedron
!   texture {
!     T_Wood7
!     rotate <0,-30,0>
!   }
  }

テクスチャを拡大する hajimete9.pov


hajimete9.povへの変更
*** hajimete8.pov	Sun Apr 13 16:46:54 2008
--- hajimete9.pov	Sun Apr 13 16:46:54 2008
***************
*** 19,22 ****
--- 19,23 ----
      T_Wood7
      rotate <0,-30,0>
+     scale 2
    }
  }

非標準のincファイルを使う hajimete10.pov

komuro.inc (本のCDに付属)から物体XYZaxisを追加


hajimete10.povへの変更
*** hajimete9.pov	Sun Apr 13 16:46:54 2008
--- hajimete10.pov	Sun Apr 13 16:46:54 2008
***************
*** 4,7 ****
--- 4,8 ----
  #include "woods.inc"
  #include "shapes2.inc"
+ #include "komuro.inc"
  
  camera {
***************
*** 22,23 ****
--- 23,26 ----
    }
  }
+ 
+ object { XYZaxis }

カメラの視界を広げる hajimete11.pov


hajimete11.povへの変更
*** hajimete10.pov	Sun Apr 13 16:46:54 2008
--- hajimete11.pov	Sun Apr 13 16:46:54 2008
***************
*** 9,13 ****
    location <5,5,-10>
    look_at <0,0,0>
!   angle 20
  }
  
--- 9,13 ----
    location <5,5,-10>
    look_at <0,0,0>
!   angle 40
  }
  

物体を座標変換する

x方向へ拡大 hajimete12.pov


hajimete12.povへの変更
*** hajimete11.pov	Sun Apr 13 16:46:54 2008
--- hajimete12.pov	Sun Apr 13 16:46:54 2008
***************
*** 22,25 ****
--- 22,26 ----
      scale 2
    }
+   scale <3,1,1>
  }
  

z軸回りの回転 hajimete13.pov


hajimete13.povへの変更
*** hajimete12.pov	Sun Apr 13 16:46:54 2008
--- hajimete13.pov	Sun Apr 13 16:46:54 2008
***************
*** 23,26 ****
--- 23,27 ----
    }
    scale <3,1,1>
+   rotate <0,0,45>
  }
  

平行移動 hajimete14.pov


hajimete14.povへの変更
*** hajimete13.pov	Sun Apr 13 16:46:54 2008
--- hajimete14.pov	Sun Apr 13 16:46:54 2008
***************
*** 24,27 ****
--- 24,28 ----
    scale <3,1,1>
    rotate <0,0,45>
+   translate <0,0,-4>
  }
  

地面を加える hajimete15.pov


hajimete15.povへの変更
*** hajimete14.pov	Sun Apr 13 16:46:54 2008
--- hajimete15.pov	Sun Apr 13 16:46:54 2008
***************
*** 28,29 ****
--- 28,34 ----
  
  object { XYZaxis }
+ 
+ object {
+   Plane_XZ
+   texture { T_Stone3 }
+ }

地面のテクスチャを変更 hajimete16.pov


hajimete16.povへの変更
*** hajimete15.pov	Sun Apr 13 16:46:54 2008
--- hajimete16.pov	Sun Apr 13 16:46:54 2008
***************
*** 31,34 ****
  object {
    Plane_XZ
!   texture { T_Stone3 }
  }
--- 31,36 ----
  object {
    Plane_XZ
!   texture {
!     pigment { checker color White, color Black }
!   }
  }

カメラの位置を変更する hajimete17.pov

地面ぎりぎりへ


hajimete17.povへの変更
*** hajimete16.pov	Sun Apr 13 16:46:54 2008
--- hajimete17.pov	Sun Apr 13 16:46:54 2008
***************
*** 7,11 ****
  
  camera {
!   location <5,5,-10>
    look_at <0,0,0>
    angle 40
--- 7,11 ----
  
  camera {
!   location <5,0.5,-10>
    look_at <0,0,0>
    angle 40

カメラの向きを変更する hajimete18.pov

少し上を向く
hajimete18.povへの変更
*** hajimete17.pov	Sun Apr 13 16:46:54 2008
--- hajimete18.pov	Sun Apr 13 16:46:54 2008
***************
*** 8,12 ****
  camera {
    location <5,0.5,-10>
!   look_at <0,0,0>
    angle 40
  }
--- 8,12 ----
  camera {
    location <5,0.5,-10>
!   look_at <0,2,0>
    angle 40
  }

空を追加する hajimete19.pov


hajimete19.povへの変更
*** hajimete18.pov	Sun Apr 13 16:46:54 2008
--- hajimete19.pov	Sun Apr 13 16:46:54 2008
***************
*** 35,36 ****
--- 35,38 ----
    }
  }
+ 
+ background { color Blue }

空をリアルに hajimete20.pov


hajimete20.povへの変更
*** hajimete19.pov	Sun Apr 13 16:46:54 2008
--- hajimete20.pov	Sun Apr 13 16:46:54 2008
***************
*** 5,8 ****
--- 5,9 ----
  #include "shapes2.inc"
  #include "komuro.inc"
+ #include "skies.inc"
  
  camera {
***************
*** 36,38 ****
  }
  
! background { color Blue }
--- 37,39 ----
  }
  
! sky_sphere {S_Cloud1 }

座標軸を消す hajimete21.pov


hajimete21.povへの変更
*** hajimete20.pov	Sun Apr 13 16:46:54 2008
--- hajimete21.pov	Sun Apr 13 16:46:54 2008
***************
*** 28,32 ****
  }
  
! object { XYZaxis }
  
  object {
--- 28,32 ----
  }
  
! //object { XYZaxis }
  
  object {

物体の素材を変える

金属(黄金)にする hajimete22.pov


hajimete22.povへの変更
*** hajimete21.pov	Sun Apr 13 16:46:54 2008
--- hajimete22.pov	Sun Apr 13 16:46:54 2008
***************
*** 6,9 ****
--- 6,10 ----
  #include "komuro.inc"
  #include "skies.inc"
+ #include "golds.inc"
  
  camera {
***************
*** 19,23 ****
    Dodecahedron
    texture {
!     T_Wood7
      rotate <0,-30,0>
      scale 2
--- 20,24 ----
    Dodecahedron
    texture {
!     T_Gold_1E
      rotate <0,-30,0>
      scale 2

赤いガラスにする hajimete23.pov


hajimete23.povへの変更
*** hajimete22.pov	Sun Apr 13 16:46:54 2008
--- hajimete23.pov	Sun Apr 13 16:46:54 2008
***************
*** 7,10 ****
--- 7,11 ----
  #include "skies.inc"
  #include "golds.inc"
+ #include "glass.inc"
  
  camera {
***************
*** 20,24 ****
    Dodecahedron
    texture {
!     T_Gold_1E
      rotate <0,-30,0>
      scale 2
--- 21,25 ----
    Dodecahedron
    texture {
!     T_Ruby_Glass
      rotate <0,-30,0>
      scale 2

霧をかける hajimete24.pov


hajimete24.povへの変更
*** hajimete23.pov	Sun Apr 13 16:46:54 2008
--- hajimete24.pov	Sun Apr 13 16:46:54 2008
***************
*** 40,41 ****
--- 40,49 ----
  
  sky_sphere {S_Cloud1 }
+ 
+ fog {
+   fog_type 2
+   distance 8
+   color White
+   fog_offset 2
+   fog_alt 0.2
+ }