POV-Rayを使ってみよう


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

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	Wed Oct  7 09:21:30 2020
--- hajimete2.pov	Wed Oct  7 09:21:30 2020
***************
*** 8,14 ****
    angle 20
  }
  
! light_source { <0,10,-10> color White }
  
  object {
    Sphere
--- 8,14 ----
    angle 20
  }
  
! light_source { <0,10,-10> color White*2 }
  
  object {
    Sphere

照明を増やす hajimete3.pov


hajimete3.povへの変更
*** hajimete2.pov	Wed Oct  7 09:21:30 2020
--- hajimete3.pov	Wed Oct  7 09:21:30 2020
***************
*** 8,14 ****
    angle 20
  }
  
! light_source { <0,10,-10> color White*2 }
  
  object {
    Sphere
--- 8,15 ----
    angle 20
  }
  
! light_source { <0,10,-10> color White }
! light_source { <5,0,-10> color White }
  
  object {
    Sphere

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


hajimete4.povへの変更
*** hajimete3.pov	Wed Oct  7 09:21:30 2020
--- hajimete4.pov	Wed Oct  7 09:21:30 2020
***************
*** 13,17 ****
  
  object {
    Sphere
!   texture { T_Stone12 }
  }
--- 13,17 ----
  
  object {
    Sphere
!   texture { T_Stone13 }
  }

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


hajimete5.povへの変更
*** hajimete4.pov	Wed Oct  7 09:21:30 2020
--- hajimete5.pov	Wed Oct  7 09:21:30 2020
***************
*** 1,6 ****
--- 1,7 ----
  #include "colors.inc"
  #include "shapes.inc"
  #include "stones.inc"
+ #include "woods.inc"
  
  camera {
    location <5,5,-10>
***************
*** 13,17 ****
  
  object {
    Sphere
!   texture { T_Stone13 }
  }
--- 14,18 ----
  
  object {
    Sphere
!   texture { T_Wood7 }
  }

形を変える(箱) hajimete6.pov


hajimete6.povへの変更
*** hajimete5.pov	Wed Oct  7 09:21:30 2020
--- hajimete6.pov	Wed Oct  7 09:21:30 2020
***************
*** 13,18 ****
  light_source { <5,0,-10> color White }
  
  object {
!   Sphere
    texture { T_Wood7 }
  }
--- 13,18 ----
  light_source { <5,0,-10> color White }
  
  object {
!   Cube
    texture { T_Wood7 }
  }

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


hajimete7.povへの変更
*** hajimete6.pov	Wed Oct  7 09:21:30 2020
--- hajimete7.pov	Wed Oct  7 09:21:30 2020
***************
*** 2,7 ****
--- 2,8 ----
  #include "shapes.inc"
  #include "stones.inc"
  #include "woods.inc"
+ #include "shapes2.inc"
  
  camera {
    location <5,5,-10>
***************
*** 13,18 ****
  light_source { <5,0,-10> color White }
  
  object {
!   Cube
    texture { T_Wood7 }
  }
--- 14,19 ----
  light_source { <5,0,-10> color White }
  
  object {
!   Dodecahedron
    texture { T_Wood7 }
  }

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

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


hajimete8.povへの変更
*** hajimete7.pov	Wed Oct  7 09:21:30 2020
--- hajimete8.pov	Wed Oct  7 09:21:30 2020
***************
*** 15,19 ****
  
  object {
    Dodecahedron
!   texture { T_Wood7 }
  }
--- 15,22 ----
  
  object {
    Dodecahedron
!   texture {
!     T_Wood7
!     rotate <0,-30,0>
!   }
  }

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


hajimete9.povへの変更
*** hajimete8.pov	Wed Oct  7 09:21:30 2020
--- hajimete9.pov	Wed Oct  7 09:21:30 2020
***************
*** 18,22 ****
--- 18,23 ----
    texture {
      T_Wood7
      rotate <0,-30,0>
+     scale 2
    }
  }

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

komuro.inc (本のCDに付属)を用いて、物体XYZaxisを追加する。 komuro.inc はダウンロードして、hajimete10.povと同じフォルダに置いて下さい。


hajimete10.povへの変更
*** hajimete9.pov	Wed Oct  7 09:21:30 2020
--- hajimete10.pov	Wed Oct  7 09:21:30 2020
***************
*** 3,8 ****
--- 3,9 ----
  #include "stones.inc"
  #include "woods.inc"
  #include "shapes2.inc"
+ #include "komuro.inc"
  
  camera {
    location <5,5,-10>
***************
*** 21,23 ****
--- 22,26 ----
      scale 2
    }
  }
+ 
+ object { XYZaxis }

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


hajimete11.povへの変更
*** hajimete10.pov	Wed Oct  7 09:21:30 2020
--- hajimete11.pov	Wed Oct  7 09:21:30 2020
***************
*** 8,14 ****
  camera {
    location <5,5,-10>
    look_at <0,0,0>
!   angle 20
  }
  
  light_source { <0,10,-10> color White }
--- 8,14 ----
  camera {
    location <5,5,-10>
    look_at <0,0,0>
!   angle 40
  }
  
  light_source { <0,10,-10> color White }

物体を座標変換する

x方向へ拡大 hajimete12.pov


hajimete12.povへの変更
*** hajimete11.pov	Wed Oct  7 09:21:30 2020
--- hajimete12.pov	Wed Oct  7 09:21:30 2020
***************
*** 21,26 ****
--- 21,27 ----
      rotate <0,-30,0>
      scale 2
    }
+   scale <3,1,1>
  }
  
  object { XYZaxis }

z軸回りの回転 hajimete13.pov


hajimete13.povへの変更
*** hajimete12.pov	Wed Oct  7 09:21:30 2020
--- hajimete13.pov	Wed Oct  7 09:21:30 2020
***************
*** 22,27 ****
--- 22,28 ----
      scale 2
    }
    scale <3,1,1>
+   rotate <0,0,45>
  }
  
  object { XYZaxis }

平行移動 hajimete14.pov


hajimete14.povへの変更
*** hajimete13.pov	Wed Oct  7 09:21:30 2020
--- hajimete14.pov	Wed Oct  7 09:21:30 2020
***************
*** 23,28 ****
--- 23,29 ----
    }
    scale <3,1,1>
    rotate <0,0,45>
+   translate <0,0,-4>
  }
  
  object { XYZaxis }

地面を加える hajimete15.pov


hajimete15.povへの変更
*** hajimete14.pov	Wed Oct  7 09:21:30 2020
--- hajimete15.pov	Wed Oct  7 09:21:30 2020
***************
*** 27,29 ****
--- 27,34 ----
  }
  
  object { XYZaxis }
+ 
+ object {
+   Plane_XZ
+   texture { T_Stone3 }
+ }

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


hajimete16.povへの変更
*** hajimete15.pov	Wed Oct  7 09:21:30 2020
--- hajimete16.pov	Wed Oct  7 09:21:30 2020
***************
*** 30,34 ****
  
  object {
    Plane_XZ
!   texture { T_Stone3 }
  }
--- 30,36 ----
  
  object {
    Plane_XZ
!   texture {
!     pigment { checker color White, color Black }
!   }
  }

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

地面ぎりぎりへ


hajimete17.povへの変更
*** hajimete16.pov	Wed Oct  7 09:21:30 2020
--- hajimete17.pov	Wed Oct  7 09:21:30 2020
***************
*** 6,12 ****
  #include "komuro.inc"
  
  camera {
!   location <5,5,-10>
    look_at <0,0,0>
    angle 40
  }
--- 6,12 ----
  #include "komuro.inc"
  
  camera {
!   location <5,0.5,-10>
    look_at <0,0,0>
    angle 40
  }

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

少し上を向く
hajimete18.povへの変更
*** hajimete17.pov	Wed Oct  7 09:21:30 2020
--- hajimete18.pov	Wed Oct  7 09:21:30 2020
***************
*** 7,13 ****
  
  camera {
    location <5,0.5,-10>
!   look_at <0,0,0>
    angle 40
  }
  
--- 7,13 ----
  
  camera {
    location <5,0.5,-10>
!   look_at <0,2,0>
    angle 40
  }
  

空を追加する hajimete19.pov


hajimete19.povへの変更
*** hajimete18.pov	Wed Oct  7 09:21:30 2020
--- hajimete19.pov	Wed Oct  7 09:21:30 2020
***************
*** 34,36 ****
--- 34,38 ----
      pigment { checker color White, color Black }
    }
  }
+ 
+ background { color Blue }

空をリアルに hajimete20.pov


hajimete20.povへの変更
*** hajimete19.pov	Wed Oct  7 09:21:30 2020
--- hajimete20.pov	Wed Oct  7 09:21:30 2020
***************
*** 4,9 ****
--- 4,10 ----
  #include "woods.inc"
  #include "shapes2.inc"
  #include "komuro.inc"
+ #include "skies.inc"
  
  camera {
    location <5,0.5,-10>
***************
*** 35,38 ****
    }
  }
  
! background { color Blue }
--- 36,39 ----
    }
  }
  
! sky_sphere {S_Cloud1 }

座標軸を消す hajimete21.pov


hajimete21.povへの変更
*** hajimete20.pov	Wed Oct  7 09:21:30 2020
--- hajimete21.pov	Wed Oct  7 09:21:30 2020
***************
*** 27,33 ****
    translate <0,0,-4>
  }
  
! object { XYZaxis }
  
  object {
    Plane_XZ
--- 27,33 ----
    translate <0,0,-4>
  }
  
! //object { XYZaxis }
  
  object {
    Plane_XZ

物体の素材を変える

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


hajimete22.povへの変更
*** hajimete21.pov	Wed Oct  7 09:21:30 2020
--- hajimete22.pov	Wed Oct  7 09:21:30 2020
***************
*** 5,10 ****
--- 5,11 ----
  #include "shapes2.inc"
  #include "komuro.inc"
  #include "skies.inc"
+ #include "golds.inc"
  
  camera {
    location <5,0.5,-10>
***************
*** 18,24 ****
  object {
    Dodecahedron
    texture {
!     T_Wood7
      rotate <0,-30,0>
      scale 2
    }
--- 19,25 ----
  object {
    Dodecahedron
    texture {
!     T_Gold_1E
      rotate <0,-30,0>
      scale 2
    }

赤いガラスにする hajimete23.pov


hajimete23.povへの変更
*** hajimete22.pov	Wed Oct  7 09:21:30 2020
--- hajimete23.pov	Wed Oct  7 09:21:30 2020
***************
*** 6,11 ****
--- 6,12 ----
  #include "komuro.inc"
  #include "skies.inc"
  #include "golds.inc"
+ #include "glass.inc"
  
  camera {
    location <5,0.5,-10>
***************
*** 19,25 ****
  object {
    Dodecahedron
    texture {
!     T_Gold_1E
      rotate <0,-30,0>
      scale 2
    }
--- 20,26 ----
  object {
    Dodecahedron
    texture {
!     T_Ruby_Glass
      rotate <0,-30,0>
      scale 2
    }

霧をかける hajimete24.pov


hajimete24.povへの変更
*** hajimete23.pov	Wed Oct  7 09:21:30 2020
--- hajimete24.pov	Wed Oct  7 09:21:30 2020
***************
*** 39,41 ****
--- 39,49 ----
  }
  
  sky_sphere {S_Cloud1 }
+ 
+ fog {
+   fog_type 2
+   distance 8
+   color White
+   fog_offset 2
+   fog_alt 0.2
+ }