13. テクスチャ2


13. テクスチャ2

13.1 パターン・タイプ

POV-Rayでは3次元ソリッド・テクスチャリングという方法を用いて表面の色や凹凸などの特性を定義する。 これはテクスチャのパターンを変えることで表面に変化を与える方法である。 パターンはピグメントとノーマル、テクスチャ・マップで使用できる。

POV-Rayのパターンはすべて3次元である。 つまり、パターンは壁紙として物体表面だけに貼り付けられるのではなく、その物体を木や石などのブロックから切り出したものとして表現する。 従ってパターンは物体内部にも存在し、物体の切断面にも現れる。

ここでは下記の34種類のパターンについて示す。

(1) agate(めのう)
(2) 平均(average)
(3) ボックス(boxed)
(4) ボーゾ(bozo)
(5) レンガ(brick)
(6) バンプ(bumps)
(7) チェッカー(checker)
(8) ひび(crackle)
(9) 円柱(cylindrical)
(10) くぼみ(dents)
(11) 勾配(gradient)
(12) みかげ石(granite)
(13) 六角形(hexagon)
(14) 豹(leopard)
(15) マンデルブロ(mandel)
(16) 大理石(marble)
(17) 玉ねぎ(onion)
(18) 地層(planar)
(19) キルト(quilted)
(20) 放射(radial)
(21) 波紋(ripples)
(22) spherical
(23) 螺旋1(spiral1)
(24) 螺旋2(spiral2)
(25) 斑点(spotted)
(26) 波(waves)
(27) 年輪(wood)
(28) しわ(wrinkles)
(29) ます目(cells)
(30) 小面(facets)
(31) ピグメントパターン
(32) イメージパターン
(33) 物体パターン
(34) 関数パターン

(※ キーワードのアルファベット順)

各パターンは、物体上の各点のx, y, z座標を使用して実数値を返すパターン関数を計算する。 カラー・マップまたはピグメント・マップでは、その値はパターンの各部分に使用する色を決定する。 ノーマル・ステートメントでは、パターン関数は凹凸を表現するために表面の法線ベクトルを修正する。 テクスチャ・マップでは、その関数は使用するテクスチャの組み合わせを決定する。

※ パターンの使用法については「12.1 ピグメント」「12.2 ノーマル」を参照せよ。

※ パターン修正オプション(波形タイプやturbulenceなど)については「13.2 テクスチャのオプション」を参照せよ。

※ ここでは下記の新しい項目について省略している。
             density_file               image pattern         
             fractatl patterns          object pattern
             function as pattern        pigment pattern               
             function image             slope         
                                     


13.1-1 めのう(agate)

agateはmarble(大理石)と同様の縞のパターンであるが、こちらはパターンを乱すための専用の関数が組み込まれている。 agateはこの関数によって最初から非常に乱されているため、通常はパターン修正オプションのturbulenceを追加する必要はない(同時に使用することもできる)。

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

図13.1-1 めのう(agate)

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

#declare T1=
 texture{
   pigment{
     agate color_map{[0.0 color rgb<0.5,0.8,0.8>][0.6 White]}
     scale 0.24
   }
 }

#declare T2=
 texture{
   pigment{color rgb<0.5,0.8,0.8>}
   normal{
     agate 1
     scale 0.24
   }
   finish{phong 0.8 phong_size 200}
 }

●次のようにagate_turbのキーワードと実数値を加えることによって、agateのパターンの乱れ方を変えることができる。

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


13.1-2 平均(average)

average は実際はパターン・タイプではないが、使用法は他のパターンと同様である。 通常のパターン・タイプはピグメント・マップやノーマル・マップの中の色や法線がどのように使用されるかを決定するが、averageは指定した色や法線、テクスチャをすべて平均して混合する。

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

図13.1-2 平均(average)

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

#declare T1=
 texture{
   average
   texture_map{
     [ 0.5 pigment{ripples scale 0.3} ]
     [ 0.5 pigment{checker color rgb<1.0,0.8,0.5> color White} 
       finish{specular 1} scale 0.5]
   }
 }

#declare T2=
 texture{
   pigment{White}
   normal{
    average
    normal_map {
     [ripples 1 scale 0.3]
     [checker 1.2 scale 0.5]
    }
   }
   finish{phong 0.8 phong_size 200}
 }

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

例)
          pigment {
            average
            pigment_map {
              [0.5 wood]
              [0.3 Jade]
              [0.2 marble]
            }
          }
average の場合、各エントリーの最初の実数値はそのエントリーの重みを表す。 つまりこの例のピグメントでは、wood が 50%、Jade が 30%、marble が 20% 混合されることになる。

テクスチャ・マップとノーマル・マップで使用するときも同様である。
「12.1 ピグメント」
「12.2 ノーマル」
「12.5 パターン・テクスチャ」


13.1-3 ボックス(boxed)

このパターンは原点での2×2×2の立方体を中心にして作られる。つまり、この立方体でもとのオブジェクトを切り取った部分に色がつく。

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

図13.1-3 ボックス(boxed)

●図13.1.3に使用したテクスチャ定義
#declare T2=
    texture{boxed
      texture_map{
           [ 0 pigment{/*checker color rgb<1.0,0.8,0.5>} ]
           [ 0.01 pigment{/*checker color rgb<0,0,0>} ]
      }     
    }
 }

#declare T1=
    texture { 
      pigment{color Yellow}
      normal{boxed 5
             scale 0.999     
             frequency 10
      }
      finish{ambient 0.5}
    }

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


13.1-4 ボーゾ(bozo)

bozo は非常に滑らかなランダム・ノイズ関数であり、一般的に雲を作るために使用される。 これは部屋の中の温度分布のような特性を持つ。「13.1-25 spotted」と同じものである。

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

図13.1-4 bozo

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

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

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

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

初期バージョンのPOV-Rayではbozoとspotted(斑点)はturbulenceを追加できるかどうかで区別されていた。 現在ではどちらもturbulenceを追加できるのでbozoとspottedは全く同じであるが、旧バージョンとの適合性のためにどちらも使用できる。 ノーマル・ステートメントで使用するとき以外はbumpsもbozoと全く同じである(ノーマルとして使用するときは、bumpsはbozoとは少し異なった方法で法線を修正する)。


13.1-5 レンガ(brick)

brick はレンガのパターンを生成する。 レンガは互い違いに並べられ、各レンガの間には漆喰の層が挟まれる。

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

図13.1-5 レンガ(brick)

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

#declare T1=
 texture{
   pigment{
     brick  color Gray color rgb<0.8,0.3,0.1>
     scale 0.1
   }
 }

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

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

 pigment {
   brick COLOR_1, COLOR_2
   brick_size VECTOR
   mortar FLOAT
 }
pigment ピグメントを指定するキーワード
brick レンガ・パターンを指定するキーワード
COLOR_1 漆喰の色 [デフォルト:ダーク・グレー]
COLOR_2 レンガの色 [デフォルト:深い赤色]
brick_size VECTOR レンガと漆喰を合わせたサイズ [デフォルト:<8, 3, 4.5> ]
mortar FLOAT 漆喰の厚さ [デフォルト:0.5 ]

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

例)
          pigment {
            brick pigment{Jade}, pigment{BlackMarble}
          }

          texture {
            brick texture{T_Gold_1A}, texture{Stone12}
          }
< brick の構文/ノーマルで使用する場合>

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

レンガと漆喰の部分にそれぞれ別にノーマルを指定することもできる。

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


13.1-6 バンプ(bumps)

bumpsは、起伏した丘やでこぼこのオレンジの皮のようなものを表現することができる。 通常凹凸の間隔は1程度である。

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

図13.1-6 バンプ(bumps)

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

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

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

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

ピグメントまたはテクスチャで使用する場合、bumpsはbozo、spottedと全く同じである。


13.1-7 チェッカー(checker)

checkerのパターンは、大きさ1の2種類の立方体を互い違いに積み重ねたものである。checkerを適用した物体は、この積み重ねの結果によるチェッカーの立方体から切り取られる。

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

図13.1-7 チェッカー(checker)

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

#declare T1=
 texture{
   pigment{
     checker color rgb<0.2,0.7,1>*0.8, color rgb<1,0.9,0.6>*1.3
     scale 0.24
   }
 }

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

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

 pigment {
   checker COLOR_1, COLOR_2
 }
pigment ピグメントを指定するキーワード
checker チェッカー・パターンを指定するキーワード
COLOR_1, COLOR_2 チェッカーの色  [デフォルト:青と緑]

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

例)
          pigment {
            checker pigment{Jade}, pigment{Black_Marble}
          }

          texture {
            checker texture{T_Wood_3A},texture{Stone12}
          }
< checker の構文/ノーマルで使用する場合>

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

チェッカーの2つの正方形にそれぞれ別のノーマルを指定することもできる。

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

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

旧バージョンのPOV-Rayでは、チェッカーのテクスチャ・パターンとして特殊テクスチャtilesを使用していたが、現在ではcheckerが使用できるようになった。 tilesは今でも使用できるが、将来のバージョンでは使用できなくなるため、chekerを使用すべきである。
「12.5 パターン・テクスチャ」


13.1-8 ひび(crackle)

crackleはランダムにタイル張りされたポリゴンのセットである。 このパターンは、 そのまま拡大するとかなり良い石の壁や床を作り、縮小すると陶磁器の表面を作ることができる。 また、turbulence を追加することによって marbleとは違った大理石を作ることができる。crackleには4タイプあり1つを選択して実行する。

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

図13.1-8a ひび(crackle)・from

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

#declare T1=
 texture{ pigment{ crackle form <-0.8,0.8,0>*3  scale 0.5
                   color_map{[0.0 color rgb<0.6,0.3,0.1>*0.8][0.5 White] }  }
  }

#declare T2=
 texture{ pigment{White}
          normal{ crackle 0.6 form <-0.8,0.8,0>*3  scale 0.5  }
          finish{phong 0.8 phong_size 200}
  }

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

図13.1-8b ひび(crackle)・metric

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

#declare T1=
 texture{ pigment{ crackle metric 1   scale 0.5
         color_map{[0.0 color rgb<0.6,0.3,0.1>*0.8][0.3 White] }  }
 }

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

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

図13.1-8c ひび(crackle)・offset

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

#declare T1=
 texture{ pigment{ crackle offset 01  scale 0.5
          color_map { [0.05 colour rgb<0, 0, 0> ]
                      [0.08 colour rgb<0, 1, 1> ]
                      [0.10 colour rgb<0, 1, 1> ]
                      [1.00 colour rgb<0, 0, 1> ]  }
                 }
 }

#declare T2=
 texture{ pigment{White}
          normal{ crackle 0.6 offset 0 scale 0.5  }
          finish{phong 0.8 phong_size 200}
 }

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

図13.1-8d ひび(crackle)・solid

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

#declare T1=
 texture{ pigment{ crackle solid   scale 0.4
          color_map{[0.3 color rgb<1,0.4,0.4>]
                    [0.6 color rgb<0.4,1,0.4>]
                    [0.8 color rgb<0.4,0.4,1>] }
   }
 }

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

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

 pigment {
   crackle
   [ form <FORM_VECTOR> | metric METRIC_VALUE | offset OFFSET_VALUE | solid ]
 }
pigment ピグメントを指定するキーワード
crackle ひびを指定するキーワード
form <FORM_VECTOR> パラメータのベクトル成分がそれそれ乗算されパターンの距離決定に使用される。[デフォルト:<-1,1,0> ]
metric METRIC_VALUE 値によりひびの形が変化する。[デフォルト: 2 ]
offset OFFSET_VALUE 値を大きくするとひびが大きくなる。[デフォルト: 0 ]
solid ステンドグラスのようなパターンを生成する。

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

 nomal {
   crackle [ Bump_Size ]
   [ form <FORM_VECTOR> | metric METRIC_VALUE | offset OFFSET_VALUE | solid ]
 }
normal ノーマルを指定するキーワード
crackle [Bump_Size] ひびを指定し、必要であれば凹凸の見かけの深さを指定
form <FORM_VECTOR> パラメータのベクトル成分がそれそれ乗算されパターンの距離決定に使用される。[デフォルト:<-1,1,0> ]
metric METRIC_VALUE 値によりひびの形が変化する。[デフォルト: 2 ]
offset OFFSET_VALUE 値を大きくするとひびが大きくなる。[デフォルト: 0 ]
solid ステンドグラスのようなパターンを生成する。

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

(左)turbulenceなし (右)turbulenceあり

図13.1-8e turbulenceによる違い


13.1-9 円柱(cylindrical)

cylindrical はy軸まわりの円を放射状に作ります。これはものの内側の状態を設定するもので、ものをきったときに大きな効果をあらわします。

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

図13.1-9a 円柱(cylindrical)

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

#declare T1=
  texture{cylindrical
              texture_map{
                 [  0   pigment{ color Brown} ]
                 [  0.2  pigment{ color White} ]
                 [  0.4  pigment{ color Red} ]    
                 [  0.8  pigment{ color Blue} ]
               }     
        }  

#declare T2=
 texture{
   pigment{color Red}
   normal{cylindrical 5
          scale 0.999     
          frequency 10
   }
   finish{ambient 0.2 reflection 0}
 } 

円柱(cylindrical)の概要

図13.1-9b 円柱(cylindrical)の構成

・ 層の色は放射状に広がり、色の数はいくらでも増やすことが可能。
・ テキスチャマップ、カラーマップを使用した場合、数字は小さい順に並べていくのが良い。その数字が大きくなるほど、描かれる円は小さくなる。

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


13.1-10 くぼみ(dents)

dentsはハンマーで叩いたようなくぼみを作る。 これは金属的なテクスチャとともに使用すると特に効果的である。 通常くぼみの間隔は1程度である。

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

図13.1-10 くぼみ(dents)

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

#declare T1=
 texture{
   pigment{
     dents color_map{[0.0 color rgb<0.5,1,0.3>][0.5 White]}
     scale 0.24
   }
 }

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

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