R12絵の質は、照明とマテリアルの質で決まる。1透過、拡散屈折この章では屈折するマテリアルをリアルに表現するための方法について説明します。「拡散屈折」は、「透過」チャンネルの中にあるオプションです。図022-1「拡散屈折」の値を大きくすると、透明なオブジェクトの先に見えるマテリアルがボケます。この時光は拡散屈折します。拡散屈折とは、入射した光があらゆる方向に拡散して透過、屈折することです。拡散屈折を利用した典型的な製品は「すりガラス」です。(サンプル022aのフレーム2)現実世界において、拡散屈折は透明な物質の表面に細かいでこぼこがある場合に起こります。したがって、透過とバンプを組み合わせると似たような表現ができます。拡散屈折を使うと、一本の光を分岐させて拡散の計算をするので、細かくてきれいなボケを表現できます。その分レンダリング時間は長くなります。バンプを使った場合、細かいボケは表現できませんが、レンダリング時間は変りません。図022-3左は拡散屈折で表現したガラス(拡散屈折5%、フレーム0)。右はバンプで表現したガラス(フレーム3)。逆に、拡散屈折では粗いでこぼこを表現できませんが、バンプを使えば簡単にでこぼこのスケールを変更できます。でこぼこのパターンも簡単に変えられます。図022-4左は「ノイズ」で表現したバンプ(フレーム4)。右は「タイル」で表現したバンプ(フレーム5)。したがって、表面にでこぼこのある透明なマテリアルを表現したい場合には、可能な限りバンプを使い、細かくてきれいなボケが必要な場合にだけ拡散屈折を使うようにして下さい。4Dで3Dの拡散屈折を計算せず、透明な部分にPhotoshopやAfterEffectsで2Dのぼかしをかける、という方法もあります。2Dのぼかしフィルタでは、ボケの量を透明なオブジェクトからの距離に応じて変えることができません。「透明な部分の外側が存在しないため、エッジをきれいにボカせない」とか、「100%より明るい色をボカせない」などの問題点もあります。2Dのフィルタを使う場合は、このような点に注意して下さい。図022-5ボケの量は、透明なオブジェクトからの距離によって変る(フレーム60)。4個のパラメータがあります。これらの働きは、エリアシャドウや拡散鏡面反射のパラメータと全く同じです。拡散反射の値を大きくすると、ボケが大きくなります。この値を0にすると拡散屈折の機能が停止します。最小サンプル数と最大サンプル数の値は、光を分岐させる時に使われます。光を分岐させてシーンを調べた時に、明るさの変化(ばらつき)が少なければ最小サンプル数に近い値が、明るさの変化が大きければ最大サンプル数に近い値が使われます。デフォルトの値は「5」と「128」になっていますが、非常に重いので、私は「2」と「32」ぐらいに下げて使っています。計算精度の値は、明るさの変化を判断する時に使われます。この値が大きいと最大サンプル数に近い値が使われ、小さいと最小サンプル数に近い値が使われます。2透過、フレネル「フレネル」は、「透過」チャンネルの中にあるオプションです。図022-6フレネルは、元々は19世紀に光の研究をしたフランスの物理学者の名前です。4Dの世界では、「屈折と鏡面反射の関係」とか「光の入射角度に応じて面の見え方が変わること」のような意味で使われます。フレネルはデフォルトで働いていて、光を屈折させるとフレネルの式にしたがって自動的に鏡面反射が生じるようになっています。図022-7左はフレネルあり(フレーム10)。右はフレネルなし(フレーム11)。現実世界において、ほとんどの物質はフレネルの式そのままには見えません。理由は、物質の表面に別の物質が付着しているからです。意図的に別の物質を付着させることを「コーティング」と呼びますが、コーティングによって物質の見え方は大きく変わります。生物も工業製品もいろいろな種類のコーティングを利用しています。カメラやメガネのレンズには鏡面反射を低減するためのコーティングが施してあります。このようなオブジェクトを表現する場合は「フレネル鏡面反射度」の値を小さくして下さい。「透過」チャンネルの中にあるオプションです。図022-8現実世界において、ガラスやアクリルの色は物質の表面に付いているわけではなく、中に付いています。光が物質の中を進んだ距離に応じて色が付きます。吸収色のオプションを使うと、これを表現できます。吸収色を指定する場合は、「透過色」を白のままにしておいて下さい。透過色は物質の表面に付ける色で、これはちょうど透明な物質にカラーフィルムを貼った状態に相当します。図022-9左は吸収色を指定したガラス(フレーム15)。右は透過色を指定したガラス(フレーム16)。4フレネルシェーダステップ2で説明したフレネルの式は、屈折と鏡面反射に限定して働くものです。いろいろな理由によって「光の入射角度に応じて面の見え方が変わる」のはよくあることです。見え方が変わるのは透過チャンネルに限った話ではありません。4Dには「フレネル」という名前のシェーダが用意されています。図022-10フレネルシェーダは非常に強力で、いろいろな目的で使えます。透過チャンネルのフレネルを強調するために使う。図022-11左が標準のフレネルで表現したガラス(フレーム10)。右はフレネルシェーダで強調したガラス(フレーム30)。カラーや鏡面反射チャンネルに入れて「パール」や「メタリック塗装」等の特殊なマテリアルを表現する。発光やアルファチャンネルに入れて特殊効果として使う。図022-13左は発光チャンネル(フレーム50)、右はアルファチャンネルにフレネルシェーダを入れたマテリアル(フレーム51)。拡散鏡面反射は、「鏡面反射」チャンネルの中にあるオプションで、映りこむマテリアルをボカします。拡散鏡面反射の働きは、ステップ1で説明した拡散屈折とほとんど同じなので、ステップ1を参照して下さい。パラメータの設定方法なども同じです。図022-14左は鏡面反射(フレーム62)、右は拡散鏡面反射するマテリアル(10%、フレーム63)。値を大きくすると、より強くボケるようになります。非常に強くボカした鏡面反射の見え方は、カラーチャンネルに似てきます。図022-15左は拡散鏡面反射30%(フレーム64)、右は50%(フレーム68)。拡散屈折と同じように、バンプを使うと似たような表現ができます。バンプを使うと細かくてきれいなボケを表現できませんが、レンダリング時間は変りません。図022-16左は拡散鏡面反射(フレーム63)、右はバンプで表現したマテリアル(フレーム65)。拡散屈折と同じように、バンプを使うと粗いでこぼこを表現できます。でこぼこのパターンも簡単に変えられます。図022-17左は「ノイズ」(フレーム66)、右は「タイル」をバンプに入れて表現したマテリアル(フレーム67)。