pigmentでオブジェクトの色や模様を設定する


オブジェクトに色を付ける

質感の基本的な設定方法でみたように,オブジェクトの表面の色や模様を設定するにはpigmentを使います。たとえば球を赤くしたければ,次のように,pigment{ } の{ }内に色の指定を書きます。

object {
	sphere {<0, 1, 0>, 1 }
	texture {
		pigment { rgb <1, 0, 0>}
	}
}

colors.incをインクルードしていれば,「rgb <1, 0, 0>」の部分を「Red」と書くこともできます。色を付けるだけなら簡単ですね。オブジェクトを透明にしたいときは,「rgbf <1, 0, 0, 0.9>」のようにfilterの値を設定すればいいです。


パターンで塗り分ける

pigment{ } 内で,「wood」や「marble」などのようなパターンのキーワードを指定することで,オブジェクトの表面の模様をたとえば木目調にしたり,大理石ふうにしたりすることができます。

(1)カラーリストピグメント

「checker」「hexagon」「brick 」「object」の四つは,「カラーリストピグメント」とよばれるもので,2色または3色の色を指定することで模様を指定するものです。

「checker」はチェック模様,「hexagon」は六角形の模様,「brick 」はレンガふうの模様をつくります。「object」はたぶんバージョン3.5から付け加えられたものです。指定したオブジェクトの形に塗ることができますので,球体の表面に文字を入れるような使い方ができると思います(試していませんが・・・)。

checkerの書き方は次のようになります。

pigment {
 checker
}

とだけ指定すると青と緑のチェック模様ができます。自分の好きな色にしたいときは次のように書きます。

pigment {
 checker
  color rgb 1,
  color rgb 0
}

上の例では白黒に塗り分けています。このように「checker」の場合は2色を指定することでチェック模様をつくります。

hexagonの書き方は次のようになります。hexagonの場合は3色で塗り分けられます。

pigment {
 hexagon
   color rgb <1,1,0>
   color rgb <1,0,1>
   color rgb <0,1,1>
}

bricksの書き方は次のようになります。bricksでは,レンガの部分の色と溝の部分の色の2色を指定します。最初に指定する色が溝の色,2番目の指定がレンガ部分の色です。

pigment {
 bricks
   color rgb <0.5, 0.5, 0.5>,
   color rgb <1, 0, 0>
}

objectの書き方は次のようになります。まずオブジェクトを指定してから,オブジェクトの外側の色と内側の色をしていします。ちょっとわかりずらいかもしれないですが。

pigment {
 object {
  sphere {<0,0,0>, 1 }
  color rgb <0,1,0>,
  color rgb <0,0,1>
 }
}

(2)それ以外のパターン

上に挙げたパターン以外に,「agate」「marble」「wood」など,POV-Rayでは数多くのパターンが用意されています。それぞれについて詳しくは説明しませんが,こちらにパターンのサンプル画像がありますので,ご覧下さい。

ここでは「wood」を例にして,書き方をみていきます。まず「pigment { wood }」とだけ指定すると,次のような画像ができます。

pigment {
 wood
}

色については何も指定していませんが,デフォルトでそれっぽい色になっています。色を変更するには「color_map」という指定を使います。color_mapはたとえば次のように書きます。

color_map{
 [0 rgb <1, 0, 0>] [0.5 rgb <0, 1, 0>]
 [1 rgb <0, 0, 1>]
}

このようにcolor_map{ } の中に[ ]で囲まれた指定をいくつか書きます。[ ]内は,0〜1の数値と色の指定を書きます。0〜1の数値は,小さい方から書きます。それぞれで指定した色が,滑らかにグラデーションになります。次の例では分かりやすいように「colors.inc」をインクルードして,「gradient」という指定を使ってみました。

pigment {
 gradient y
 color_map{
  [0 Red]
  [0.2 Magenta]
  [0.4 Blue]
  [0.6 Cyan]
  [0.8 Green]
  [1 Yellow]
}

ある一定の範囲を同じ色にしたいときは,次のように書きます。下の例では0.2から0.8までが青1色になります。

pigment {
 gradient y
 color_map{
  [0 Red]
  [0.2 Blue]
  [0.8 Blue]
  [1 Yellow]
}

さて,woodの例に戻りましょう。woodのパターンを自分の好きな色に変更するには,次のように書きます。やや黄色っぽくしてみました。

pigment {
 wood
 color_map{
  [0 rgb <0.7, 0.5, 0.1>]
  [1 rgb <0.2, 0.1, 0>]
 }
}

このままでは木目(年輪)がきれいすぎますね。もう少しリアルな感じに近付けてみましょう。turbulenceというオプションを付け加えると,木目(年輪)を指定した数値に応じて乱れさせることができます。

pigment {
 wood
 color_map{
  [0 rgb <0.7, 0.5, 0.1>]
  [1 rgb <0.2, 0.1, 0>]
 }
 turbulence 0.1
}

本当にリアルな模様を作るには,いろいろなオプションをつかったり,テクスチャを重ねあわせたりする必要があります。結構難しいです。woods.incやstones.inc,textures.incなどをテキストエディタで開いてみると,それぞれのテクスチャが指定されていますが,それらを参考にして勉強してみてください。


戻る