13.1-11 勾配(gradient)

gradientは滑らかに色が変化する縞のパターンである。 gradientのキーワードの後にベクトルをつけて使用する。 これは色が混合される方向、つまり縞のパターンがどちら向きに進むかを指定するベクトルである。

例) pigment { gradient x } // X 方向に動くにつれて色が変化する

この例では、x=0(絶対座標)でカラー・マップの最初の色が使用され、xが増加するにつれて滑らかに変化し、x=1で終了する。 そしてそれは再び最初の色から始まり、x=2まで滑らかに変化する。 xが負の値の部分ではパターンは反転する。 gradient y、gradient zは、y, z軸沿いに色を混合する。 どんなベクトルでも使用できるがx, y, zが最も一般的である。

ノーマル・パターンでgradientを使用すると、鋸の歯のような凹凸を生成する。 ノーマルで使用するときは次のように指定する。

normal { gradient VECTOR, BUMP_FLOAT}

ここで向きを与えるVECTORは必須のパラメータであるが、その後に付く凹凸のサイズ BUMP_FLOAT はオプションである。

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合

図13.1-11 勾配(gradient)

●図13.1-11に使用したテクスチャ定義

#declare T1=
 texture{
   pigment{
     gradient x  color_map{[0.0 color rgb<0.8,0.4,0.1>][0.6 White]}
     scale 0.24
   }
 }

#declare T2=
 texture{
   pigment{White}
   normal{
     gradient x,  0.6
     scale 0.24
   }
   finish{phong 0.8 phong_size 200}
 }

< gradient >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 ○ スロープ・マップ 
 ○ ノーマル・マップ 
 ramp_wave(変更可) 


13.1-12 みかげ石(granite)

graniteはみかげ石のパターンである。 このパターンをstones.incの中のカラー・マップと一緒に使用することで、石のレイヤー・テクスチャを作ることができる。

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合

図13.1-12 みかげ石(granite)

●図13.1-12に使用したテクスチャ定義

#declare T1=
 texture{
   pigment{
     granite color_map{[0.0 color rgb<0.8,0.3,0.1>*0.3][0.7 White]}
     scale 0.4
   }
 }

#declare T2=
 texture{
   pigment{White}
   normal{
     granite 0.6
     scale 0.4
   }
   finish{phong 0.8 phong_size 200}
 }

< granite >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 ○ スロープ・マップ 
 ○ ノーマル・マップ 
 ramp_wave(変更可) 

ノーマルで使用する場合、砂利道やでこぼこの石のような凹凸を作る。


13.1-13 六角形(hexagon)

hexagonは、3種類の六角形の棒をy軸に平行に束にしたものである。 それぞれの六角形は右図のように並べられる。 この六角形は各辺の長さが1で、+y, -y方向に無限に引き伸ばされる。 hexagonを適用した物体は、この六角形の棒の束から切り取られる。

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合

図13.1-13a 六角形(hexagon)

●図13.1-13aに使用したテクスチャ定義
                
#declare T1=
 texture{
   pigment{
     hexagon color rgb<1,0.6,0.6>,color rgb<0.6,1,0.6>,color rgb<0.6,0.6,1>
     scale 0.24
   }
 }

#declare T2=
 texture{
   pigment{White}
   normal{
     hexagon 0.6
     scale 0.24
   }
   finish{phong 0.8 phong_size 200}
 }

< hexagon の構文/ピグメントで使用する場合>

 pigment {
   hexagon COLOR_1, COLOR_2, COLOR_3
 }
pigment ピグメントを指定するキーワード
hexagon 六角形のパターンを指定するキーワード
COLOR_1〜COLOR_3 六角形の色 [デフォルト:青と緑と赤]

図13.1-13b hexagon のパターンの並び方

単色の代わりに、ピグメント文やテクスチャ文でも使用できる。

例)
          pigment { hexagon pigment{ Jade }, pigment{ White_Marble }, pigment{ Black_Marble } }

          texture {
            hexagon
              texture { T_Gold_3A },
              texture { T_Wood_3A },
              texture { Stone12 }
          }

< hexagon の構文/ノーマルで使用する場合>

 normal {
   hexagon BUMP_FLOAT
 }
normal ノーマルを指定するキーワード
hexagon BUMP_FLOAT 凹凸の見かけの深さ

それぞれの六角形に別々のノーマルを指定することもできる。

例)
          normal {
            hexagon 
              normal { gradient x scale .2 },
              normal { gradient y scale .2 },
              normal { bumps scale .2 }
          }

< hexagon >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 ○ スロープ・マップ 
 ○ ノーマル・マップ 
 ramp_wave(変更不可) 
  (注:3つ指定するカラー部分にマップを指定する。)


13.1-14 豹(leopard)

leopardは丸い点を並べたパターンを作る。

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合

図13.1-14 豹(leopard)

●図13.1-14に使用したテクスチャ定義

 texture{
   pigment{
     leopard color_map{[0.0 color rgb<0.7,0.7,1>][0.5 White]}
     scale 0.1
   }
 }

#declare T2=
 texture{
   pigment{White}
   normal{
     leopard 1
     scale 0.1
   }
   finish{phong 0.8 phong_size 200}
 }

< leopard >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 ○ スロープ・マップ 
 ○ ノーマル・マップ 
 ramp_wave(変更可) 


13.1-15 フラクタル

フラクタルパターンとしてマンデルブロ集合(mandel)とジュリア集合(julia)を使用することができる。これらはフラクタルを計算して x-y 平面上に投影したパターンである。全部で4タイプのフラクタルがある。
  ●mandel集合
  ●julia集合
  ●magnet/mandel集合
  ●magnet/julia集合

< mandel の構文>

 pigment {
     mandel ITERATIONS [, BUMP_SIZE]
     [exponent EXPONENT]
     [exterior EXTERIOR_TYPE, FACTOR]
     [interior INTERIOR_TYPE, FACTOR]
 }
pigment ピグメントを指定するキーワード
mandel マンデルブロ集合の指定
ITERATIONS 繰り返し計算回数
BUMP_SIZE (ノーマルでのみ指定可)凹凸の深さ
exponent EXPONENT 2〜33の整数値 [デフォルト:2 ]
exterior EXTERIOR_TYPE, FACTOR 表面の着色タイプ(0〜6)の指定 [デフォルト:0 ]
調整値 [デフォルト:1.0 ]
interior INTERIOR_TYPE, FACTOR 内部の着色タイプ(0〜6)の指定 [デフォルト:1 ]
調整値 [デフォルト:1.0 ]

例)
          pigment {
            mandel 25
            color_map {
              [0.0 color Cyan]
              [0.3 color Yellow]
              [0.6 color Magenta]
              [1.0 color Cyan]
            }
            scale .5
          }
ノーマルで使用するときは次のように指定する。
          normal {
            mandel 25, 0.7
          }
凹凸のサイズとして指定している0.7は、オプションなので省略してもよい。

このパターンは、平面イメージ・マップと同様に z 方向に無限に引き伸ばされる。

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合
図13.1-15a mandelの例
●図13.1-15aに使用したテクスチャ定義
 
#declare T1=
 texture{
    pigment {
      mandel 30
      interior 1, 1
      color_map { 
        [0 rgb<0,0.5,1>]
        [0.2 rgb x]
        [0.4 rgb x+y]
        [1 rgb 1]
        [1 rgb 0]
      }
    } 
    scale 0.7
 }

#declare T2=
 texture{
   pigment{White}
   normal{
      mandel 30, 0.8
      interior 1, 1
      scale 0.7
    }
  finish{phong 0.8 phong_size 200}
 }
   

< julia の構文>

 pigment {
     julia COMPLEX, ITERATIONS [, BUMP_SIZE]
     [exponent EXPONENT]
     [exterior EXTERIOR_TYPE, FACTOR]
     [interior INTERIOR_TYPE, FACTOR]
 }
pigment ピグメントを指定するキーワード
julia COMPLEX ジュリア集合の指定と、複素数の指定(2次元ベクトル)
ITERATIONS 繰り返し計算回数
BUMP_SIZE (ノーマルでのみ指定可)凹凸の深さ
exponent EXPONENT 2〜33の整数値 [デフォルト:2 ]
exterior EXTERIOR_TYPE, FACTOR 表面の着色タイプ(0〜6)の指定 [デフォルト:0 ]
調整値 [デフォルト:1.0 ]
interior INTERIOR_TYPE, FACTOR 内部の着色タイプ(0〜6)の指定 [デフォルト:1 ]
調整値 [デフォルト:1.0 ]

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合
図13.1-15b juliaの例
●図13.1-15bに使用したテクスチャ定義
 
#declare T1=
 texture{
    pigment {
      julia <0.353, 0.353>, 30
      interior 1, 1
      color_map { 
        [0 rgb<0,0.5,1>]
        [0.2 rgb x]
        [0.4 rgb x+y]
        [1 rgb 1]
        [1 rgb 0]
      }
    }
    scale 0.7
 }

#declare T2=
 texture{
   pigment{White}
   normal{
     julia <0.353, 0.288>, 30, 0.8
     interior 1, 1
     scale 0.7
    }
  finish{phong 0.8 phong_size 200}
 }
   

< magnet/mandel の構文>

 pigment {
     magnet MAGNET_TYPE
     mandel ITERATIONS [, BUMP_SIZE]
     [exterior EXTERIOR_TYPE, FACTOR]
     [interior INTERIOR_TYPE, FACTOR]
 }
pigment ピグメントを指定するキーワード
magnet MAGNET_TYPE マグネットの指定と、タイプ(1または2)
mandel マンデルブロ集合の指定
ITERATIONS 繰り返し計算回数
BUMP_SIZE (ノーマルでのみ指定可)凹凸の深さ
exterior EXTERIOR_TYPE, FACTOR 表面の着色タイプ(0〜6)の指定 [デフォルト:0 ]
調整値 [デフォルト:1.0 ]
interior INTERIOR_TYPE, FACTOR 内部の着色タイプ(0〜6)の指定 [デフォルト:1 ]
調整値 [デフォルト:1.0 ]

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合
図13.1-15c magnet/mandelの例
●図13.1-15cに使用したテクスチャ定義
 
#declare T1=
 texture{
    pigment {
      magnet 1 mandel 30
      interior 1, 1
      color_map { 
        [0 rgb<0,0.5,1>]
        [0.2 rgb x]
        [0.4 rgb x+y]
        [1 rgb 1]
        [1 rgb 0]
      }
    }
    scale 0.7
 }

#declare T2=
 texture{
   pigment{White}
   normal{
      magnet 1 mandel 30, 0.8
      interior 1, 1
    scale 0.7
    }
  finish{phong 0.8 phong_size 200}
 }
   

< magnet/julia の構文>

 pigment {
     magnet MAGNET_TYPE
     julia COMPLEX, ITERATIONS [, BUMP_SIZE]
     [exterior EXTERIOR_TYPE, FACTOR]
     [interior INTERIOR_TYPE, FACTOR]
 }
pigment ピグメントを指定するキーワード
magnet MAGNET_TYPE マグネットの指定と、タイプ(1または2)
julia COMPLEX ジュリア集合の指定と、複素数の指定(2次元ベクトル)
ITERATIONS 繰り返し計算回数
BUMP_SIZE (ノーマルでのみ指定可)凹凸の深さ
exterior EXTERIOR_TYPE, FACTOR 表面の着色タイプ(0〜6)の指定 [デフォルト:0 ]
調整値 [デフォルト:1.0 ]
interior INTERIOR_TYPE, FACTOR 内部の着色タイプ(0〜6)の指定 [デフォルト:1 ]
調整値 [デフォルト:1.0 ]

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合
図13.1-15d magnet/juliaの例
●図13.1-15dに使用したテクスチャ定義
 
#declare T1=
 texture{
    pigment {
      magnet 2 julia <0.353, 0.353>, 30 
      interior 1, 1
      color_map { 
        [0 rgb<0,0.5,1>]
        [0.2 rgb x]
        [0.4 rgb x+y]
        [1 rgb 1]
        [1 rgb 0]
      }
    }
    scale 0.7
 }

#declare T2=
 texture{
   pigment{White}
   normal{
      magnet 2 julia <0.353, 0.253>, 30, 0.8
      interior 1, 1
    scale 0.7
    }
  finish{phong 0.8 phong_size 200}
 }

< フラクタル >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 ○ スロープ・マップ 
 ○ ノーマル・マップ 
 ramp_wave(変更可) 


13.1-16 大理石(marble)

marbleはgradient xに非常に似ている。 gradientは、ramp_waveの波形を使用するが、marbleは、triangle_waveの波形を使用する。 つまり、gradient xではx=1で急に最初の色に戻るが、marbleではxの増加の途中でパターンが反転し、x=1でのつなぎ目が滑らかになる。
通常、大理石の表現をするためには、乱れ turbulence などと併用する。

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合

図13.1-16 大理石(marble)

●図13.1-16に使用したテクスチャ定義

#declare T1=
 texture{
   pigment{
     marble color_map{[0.0 color rgb<0.7,0.3,0.1>][0.4 White]}
     turbulence 1
     scale 0.5
   }
 }

#declare T2=
 texture{
   pigment{White}
   normal{
     marble 0.6
     turbulence 1
     scale 0.5
   }
   finish{phong 0.8 phong_size 200}
 }

< marble >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 ○ スロープ・マップ 
 ○ ノーマル・マップ 
 triangle_wave(変更可) 

marble は gradient x とほとんど同じで、その違いはデフォルトの波形タイプだけである。波形タイプを ramp_wave に変更すると gradient x となる。、次の例は、YellowからCyanまで混合し、次に急にYellowに戻って繰り返す。 しかし、gradient xを marble に変更することで、xが0.0から0.5までYellowからCyanに滑らかに混合し、次にCyanから戻ってx=1.0のYellowまで滑らかに混合する。
例)
          pigment {
            gradient x
            color_map {
              [0.0 color Yellow]
              [1.0 color Cyan]
            }
          }

turbulenceを少し加えて適切なカラー・マップを使用すれば、このパターンは本物の大理石や翡翠などの石目のように見える。

初期バージョンのPOV-Rayでは波形タイプを変更することはできなかったが、現在ではほとんどのパターンで波形タイプが変更できるため、marbleとgradient xの違いはデフォルトの波形タイプだけである。


13.1-17 玉ねぎ(onion)

onion は玉ねぎの層のような同心球のパターンである。 各層の厚さは1である。

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合

図13.1-17 玉ねぎ(onion)

●図13.1-17に使用したテクスチャ定義

#declare T1=
 texture{
   pigment{
     onion color_map{[0.0 color rgb<1,0.7,0.6>][0.6 White]}
     scale 0.24
   }
 }

#declare T2=
 texture{
   pigment{White}
   normal{
     onion 0.6
     scale 0.24
   }
   finish{phong 0.8 phong_size 200}
 }

< onion >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 ○ スロープ・マップ 
 ○ ノーマル・マップ 
 ramp_wave(変更可) 


13.1-18 地層(planar)

planarはX-Z平面に平行な層を発生するもので、地層や縞のように見える。この層はy=1からy=−1までの範囲で発生する。

(上段)テキスチャで使用した場合
(下段)ノーマルで使用した場合

図13.1-18a 地層(planar)

●図13.1-18aに使用したテクスチャ定義 
#declare T1=
  texture{planar
         texture_map{
                [ 0 pigment{ color Yellow} ]
                [ 0.25 pigment{ color Brown} ]
                [ 0.5 pigment{ color White} ]
                [ 0.75 pigment{ color Red} ]    
                [ 1 pigment{ color Blue} ]
         } 
  } 

#declare T2=
   texture{
       pigment{White}  
       normal{planar 
              frequency 8
              scale 0.9
       }
       finish{phong 0.8 phong_size 200}
    }

地層(planar)の概要

図13.1-18b 地層(planar)の構成

・ 層の数はいくらでも増やすことが可能。
・ テキスチャマップ、カラーマップを使用した場合、数字は小さいほどストライプの境界がはっきりする。また、均等に数字を並べることによって均等なストライプを作ることができる。

< planar >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 ○ スロープ・マップ 
 ○ ノーマル・マップ 
 ramp_wave(変更可) 


13.1-19 キルト(quilted)

quilted は、サイズ1の立方体を並べてキルトやタイルのような表面を作るパターンである。

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合

図13.1-19a キルト(quilted)

●図13.1-19aに使用したテクスチャ定義
 
#declare T1=
 texture{
   pigment{
     quilted color_map{[0.0 color rgb<0.2,1,0.6>][0.4 White]}
     control0 1 control1 1
     scale 0.5
   }
 }

#declare T2=
 texture{
   pigment{White}
   normal{
     quilted 0.4
     control0 1 control1 1
     scale 0.5
   }
   finish{phong 0.8 phong_size 200}
 }

< quilted の構文/ピグメントで使用する場合>

 pigment {
   quilted AMOUNT
   control0 C0
   control1 C1
 }
normal ノーマルを指定するキーワード
quilted AMOUNT quiltedに使用するパターンの指定
control0 C0
control1 C1
キルトの縫い目(またはタイルの溝)の曲率の指定、通常は0.0〜1.0の範囲で指定する。 [デフォルト:1.0 ]

< quilted の構文/ノーマルで使用する場合>

 normal {
   quilted [BUMP_SIZE] AMOUNT
   control0 C0
   control1 C1
 }
normal ノーマルを指定するキーワード
quilted キルトを指定するキーワード
BUMP_SIZE 凹凸の深さ(0.1〜5.0 程度)
control0 C0
control1 C1
キルトの縫い目(またはタイルの溝)の曲率の指定、通常は0.0〜1.0の範囲で指定する。 [デフォルト:1.0 ]

この制御値(C0,C1)は曲線の上端と下端の傾きを調整する。 両端の制御値を0にすると、鋭い角を生じる直線の傾きを与える。 両端の制御値を1にすると、結果として柔らかくより丸い角のS 字カーブを与える。

上段左から:(0.0,0.0), (0.0,0.5), (0.0,1.0)
中段左から:(0.5,0.0), (0.5,0.5), (0.5,1.0)
下段左から:(1.0,0.0), (1.0,0.5), (1.0,1.0)

図13.1-19b (CO,C1)の値による表面の変化

< quilted >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 △ スロープ・マップ 
 △ ノーマル・マップ 
 ramp_wave(△変更可) 
(△:ノーマルとして使用する場合、quilted は表面の法線の修正に専用の関数を使用するため、ノーマル・マップ、スロープ・マップ、波形タイプ修正で使用できないとあるが、使用してもエラーはでない。)


13.1-20 放射(radial)

radialは+y軸まわりにマップの色が変化していくパターンであり、y軸を中心にした放射状の縞を作る。 下図に示されるようにマップの0.0は+x方向で始まり、+y方向を北として東から西へ向かって色が変化する(0.25で-z方向、0.5で-x、0.75で+z、1.0で+x に戻る)。 通常このパターンは、y軸から放射される縞の数を制御するためにfrequencyを追加して使用する。

(上段)ピグメントで使用した場合
(下段)ノーマルで使用した場合

図13.1-20a 放射(radial)

●図13.1-20aに使用したテクスチャ定義
            
#declare T1=
 texture{
   pigment{
     radial frequency 5
     color_map{[0.0 color rgb<1,0.4,0.7>][0.6 color rgb<0.8,1,0.8>]}
     scale 0.24
   }
 }

#declare T2=
 texture{
   pigment{White}
   normal{
     radial 0.6
     frequency 8
     scale 0.24
   }
   finish{phong 0.8 phong_size 200}
 }

< radial >
 利用可能なマッピング   デフォルトの波形タイプ 
 ○ カラー・マップ 
 ○ ピグメント・マップ 
 ○ テクスチャ・マップ 
 ○ スロープ・マップ 
 ○ ノーマル・マップ 
 ramp_wave(変更可) 

図13.1-20b カラー・マップの場合のradialの色の変化