13.2 テクスチャのオプション

POV-Rayには、テクスチャにさまざまな効果を与えるためのオプションがいくつか用意されている。

変形(translate, rotate, scale, matrix)
パターンの繰り返し、位相(frequency, phase)
波形タイプ(ramp_wave, triangle_wave, sine_wave, scllop_wave)
乱れ(turbulence, octaves, lambda, omega)
●歪み(warp ステートメント)
ビットマップ修正オプション(once, map_type, interpolate)

これらのオプションはピグメント、ノーマル、テクスチャの各パターンに使用できる。

※ カラー・マップ、ピグメント・マップ、イメージ・マップ ⇒「12.1 ピグメント」

※ スロープ・マップ、ノーマル・マップ、バンプ・マップ ⇒「12.2 ノーマル」

※ テクスチャ・マップ、マテリアル・マップ ⇒「12.5 パターン・テクスチャ」


13.2-1 変形

最も一般的なパターン修正は変形(translate, rotate, scale, matrix)である。 これらの修正はピグメント、ノーマル、テクスチャのステートメントの中に置くことができ、パターンの位置、サイズ、向きを変えるために使用する。 ⇒「2.2 変形」

一般にturbulenceなどの他のパターン修正に対する変形の位置は関係ない。 例えば、scaleとturbulenceの順序を変えても実際の効果は何も変わらない。 turbulenceが常に最初に処理され、スケールはその後で処理される。 しかし、warp(歪み)ステートメントに関して実行される変形の順序に関しては注意が必要である。


13.2-2 繰り返し(frequency)と位相(phase)

frequency と phase は、カラー・マップ、ピグメント・マップ、ノーマル・マップ、スロープ・マップ、テクスチャ・マップのパターンをスケールまたは移動するために使用する。 以下の例はすべてカラー・マップを使用するが、他のマップでも同じように適用される。

●frequency

frequency は1周期のパターン上でカラー・マップが繰り返す回数を調整する。 例えばgradient xはx=0〜x=1の範囲で、カラー・マップ値0〜1を使用するが、frequency 2.0 を追加することで、そのマップは同じ範囲で2回繰り返される。 この効果は特に radial を使用する場合に有効である。

FLOAT にはどんな実数でも指定できる。 1.0より大きい値はその数のマップのコピーを作り、0.0〜1.0の値はマップの断片を生じる。 負の値はマップを反転させる。

図13.2-2a 繰り返し(frequency)

例)
          pigment {
            radial
            color_map{
              [0.5 color Red]
              [0.5 color White]
            }
            frequency 6
          }
この例では、物体のまわりに均等に並んだ6セットの赤と白の放射状の縞模様を生じる。

●phase

phase の値は、マップ・エントリーの位置をずらしてマップの最初と最後を異なった位置にするために使用する。 FLOAT には通常0.0〜1.0の実数値を指定する。 上の例において phase 0.0, phase 0.1, phase 0.2 ... と連続するフレームをレンダリングすることで縞模様が回転するアニメーションを作ることができる。rotate y*ANGLE でも同じ効果が表現できる。

図13.2-2b 位相(phase)

※ frequencyとphaseは、イメージ・マップ、バンプ・マップ、マテリアル・マップおよびブロック・パターン(checker, brick, hexagon)では効果はない。 また、bumps, dents, quilted, wrinkles のノーマル・パターンはノーマル・マップとスロープ・マップでは使用できないため、これらを使用したノーマル・ステートメントでも frequency と phase は効果がない。

※ ripples と waves もノーマル・マップとスロープ・マップでは使用できないが、frequency と phase を使うことができる。 その場合、frequency は波の間隔を調整し、phase は0.0〜1.0で調整することで中心から波が動くようなアニメーションを作ることができる。

これらの値は次の式を適用することによって働く。

NEW_VALUE = fmod ( OLD_VALUE * FREQUENCY + PHASE, 1.0 ).


13.2-3 波形タイプ

カラーマップ、ピグメント・マップ、スロープ・マップ、ノーマル・マップ、テクスチャ・マップ、デンシティ・マップで使用するほとんどのパターンは、0.0→1.0の方向でそのマップのエントリーを使用する。 wood とmarble のパターンは0.0→1.0までそのマップを使用し、その後反転して 1.0→0.0 まで実行する。このようなものは波形タイプと呼ばれ次の6種類がある。

  ramp_wave   triangle_wave   sine_wave
  scallop_wave   cubic_wave   poly_wave

波形タイプの種類

gradient や onion のようなパターンは、鋭く減衰する勾配を生成する。 これは ramp_wave と呼ばれる。 しかし、wood や marble は頂点まで上向きに傾斜し、その後 triangle_wave で再び下向きに傾斜する。 以前のバージョンの POV-Ray では、波形タイプを変更することはできなかったが、今ではマップで使用するパターンであればデフォルトの波形タイプを変更することができる。変更は次のように指定する。

例)
          pigment {
            wood
              color_map { MyMap }
              ramp_wave
          }
sine_wave と scallop_wave、cubic_wave、poly_wave も利用できる。 これらのタイプは、組み込みスロープ・マップのタイプとしておもにノーマル・パターンで使用される。

(上段)ramp_wave、triangle_wave、sine_wave
(下段)scallop_wave、cubic_wave、poly_wave 

図13.2-3a 波形タイプ(ピグメントの場合)

(上段)ramp_wave、triangle_wave、sine_wave
(下段)scallop_wave、cubic_wave、poly_wave 

図13.2-3b 波形タイプ(ノーマルの場合)

sine_wave は ramp_wave のジグザグをとって、滑らかな変わり目をもつ穏やかにうねる波に変える。 scallop_wave は sine_wave の絶対値を使用し、縮小するとコーデュロイ、拡大すると円柱の積み重ねのように見える。cubic_wave は穏やかな立方体の曲がりを意味し、poly_wave は指数機能である。”poly_wave 0.5 ” のように数値を入れると変化する。数値を指定しない場合は、1.0を意味し、ramp_wave と同じような効果を示す。

これらの波形タイプのどれもがピグメント、ノーマル、テクスチャ、デンシティで使用できるが、sine_wave と scallop_wave タイプは、ピグメントとテクスチャではノーマルの場合ほど目立たない。

波形タイプはブロック・パターン(checker、brick、hexagon)では何も効果がなく、イメージ・マップ、バンプ・マップ、マテリアル・マップでも効果はない。 bumps、dents、quilted、wrinkles のノーマル・パターンはノーマル・マップとスロープ・マップでは使用できないため、これらを使用したノーマル・ステートメントでも、波形タイプは何も効果がない。


13.2-4 乱れ(turbulence)

ピグメント、ノーマル、テクスチャ、虹色をかき混ぜるために、キーワード turbulence の後に実数またはベクトルを付けたものが使用できる。 turbulence がどのように計算されるかを制御するために、turbulence とともにいくつかのオプションのパラメータが使用できる。

例)
          pigment {
            wood color_map { MyMap }
            turbulence TURB_VECTOR
            octaves FLOAT
            omega FLOAT
            lambda FLOAT
          }
典型的な turbulence の値は、デフォルトの0.0(乱れなし)から1.0またはそれ以上(非常に乱れる)の範囲である。 ベクトルが指定された場合、異なった量の乱れが x, y, z方向で適用される。

例) turbulence <1.0, 0.6, 0.1>

これは x方向では大きく乱れ、y方向は適度に、z方向は少しだけ乱れる。

※ 通常tubulenceは変形などよりも先に処理される。

図13.2-4 乱れ(turbulence)


13.2-5 octaves

octaves の値は、計算される turbulence の段階数を制御する。 有効な値は1〜10 の範囲である。 デフォルト値6はかなり高い値である;余分な段階は非常に小さいため、それを高い値に設定することによって大きな変化は見られない。 実数値は整数値に切り捨てられる。 octavesを小さくすると穏やかにうねる turbulece が得られ、計算は速くなる。 高い octaves はよりギザギザで毛羽立った turbulence を作り、計算に時間がかかる。

図13.2-5 octaves


13.2-6 lambda

lambda は、ある段階のランダムな動きがその前の段階と比べて、統計上どれだけ異なるかを制御する。 デフォルト値は非常にランダムな2.0である。 高い値は渦のような効果を生じる。

図13.2-6 lambda


13.2-7 omega

omega の値は、連続するそれぞれの段階がその前の値と比べてどれだけ大きいかを制御する。 turbulence のそれぞれの連続する段階は、omega の値によって掛け合わされる。 デフォルトの omega 0.5 は、各段階がその前の段階の1/2のサイズであることを意味する。 値を小さくすると、所々毛羽だったような turbulence が得られる。

図13.2-7 omega


13.2-8 歪み(warp)

省略。


13.2-9 ビットマップ修正

ビットマップ修正は、イメージ・マップ、バンプ・マップ、マテリアル・マップにおいて、2次元画像がどのように3次元表面に貼り付けられるかを指定するものである。

●once

通常、イメージ・マップ、バンプ・マップ、マテリアル・マップは、タイル状に無限に繰り返される。 ファイル名の後に once のキーワードを加えることによって、(0,0)〜(1,1)以外のコピーをすべて削除することができる。 イメージ・マップでは、この1x1の正方形の外側の範囲は完全に透明になる。 バンプ・マップでは、この単位正方形の外側の範囲はノーマル修正のない平坦な面になる。 マテリアル・マップでは、この単位正方形の外側の範囲はテクスチャ・リストの最初のテクスチャになる。

●map_type

x-y平面上のビットマップの投影のデフォルトは、平面マップ・タイプと呼ばれる。 物体の周りの凹凸を包む方法を指定する番号を後につけた map_type のキーワードを加えることによって、このオプションを変更することができる。

map_type 0 平面マッピング。 x-y平面に1x1の大きさで投影され、全方向に無
限に繰り返される。
map_type 1 球状マッピング。 y軸を球の北極/南極の軸として上端と下端がこ
の軸に接した状態で球を包む。 パターンはちょうど一回球をおおう
ため、once のキーワードはこのタイプでは意味がない。
map_type 2 円筒状マッピング。 y軸に沿った円柱に球状マッピングと同じように
巻き付く。 マップの高さは1(y=0〜y=1)であり、onceのキーワー
ドを指定しなければ、すべての高さに繰り返される。
map_type 3
map_type 4
開発中
map_type 5 トーラス状マッピング。 半径(major radius)が1のトーラスが原点
を中心にx-y平面の原点に置かれていると仮定する。 パターンは球
状または円柱状マッピングと同様に巻き付けられるが、マップの上端
と下端は、枠の内側で互いに出会うように、トーラスの上下を包む。

例)
          sphere{<0,0,0>,1
            pigment{
              image_map {
                gif "world.gif"
                map_type 1
              }
            }
          }
●interpolate(補間)

interpolateは、ビットマップのギザギザを滑らかにするために使用する。 現在2つのタイプが使用できる。

interpolate 2 interpolate 4より滑らかであるが、レンダリングは遅い。
interpolate 4 簡易的な補間を行う。 レダリングはこちらのほうが速い。

通常はinterpolate 2を使用する。 デフォルトでは補間は行われない。