Okamoto's Homepage
ガラスの玉などを通して向こう側の景色を見ると,景色が歪んで見えます。これはガラスの玉が光を屈折するからです。POV-Rayでは,interiorというキーワードでこの屈折を表現できます。
透明なオブジェクトでなければいけませんので,interiorを使って屈折率を指定する前に,pigment{ }内で「rgbf <1, 0, 0, 0.9>」「rgbt <1, 0, 0, 0.9>」などとして,オブジェクトを透明にしておくことがまず必要です。
オブジェクトを単に透明にしただけだと,下のような画像になります。
texture{ pigment { rgbf <1, 0.8, 0.8, 0.95> } } |
これは屈折率が設定されていない状態です。ほんの少し屈折させてみましょう。すると次の画像のようになります。
texture{
pigment {
rgbf <1, 0.8, 0.8, 0.95>
}
}
interior {
ior 1.01
}
|
球体の向こう側のチェック模様がゆがんだのが分かると思います。このように屈折させるには,interior{ }の中で「ior」を使って設定してやります。iorの後には屈折率を指定します。
屈折率は物質によって決まっています。例えば真空状態では1.0,大気は厳密には1.0004(だそうです),水は1.33です。デフォルト(指定しない場合)は1.0になっています。これは屈折しない状態です。そのため,透明にしただけだと,このページの最初の画像のようになるのです。
水の屈折率1.33を指定してやると,次のような画像になります。
texture{
pigment {
rgbf <1, 0.8, 0.8, 0.95>
}
}
interior {
ior 1.33
}
|
上の例でも分かるように,interior{ }はtexture{ }の外に記述します。下の例のようにmaterial{ }内に記述してまとめることはできます。
material{ texture{ pigment { rgbf <1, 0.8, 0.8, 0.95> } } interior { ior 1.33 } } |