Eevee の反射と屈折について(5/21更に追記あり)

投稿日時 2019年05月10日 | カテゴリ: Blender 2.8

[5月14日追記]再び屈折と反射が両立する方法を発見しました。詳しくは本文をお読みください。

[5月14日追記]記事内で「屈折と反射が両立する」という記述をしましたが、実際には透過はしていたものの、屈折はしていませんでした。重ね重ねお詫びいたします。

 以前私は「Eevee では見えない部分の反射はできない」という趣旨の文章を書きました。しかし、見えない部分は Light Probe(ライトプローブ)で補完でき、以前確かめた時は単に設定に問題があったことが判りました。訂正してお詫びいたします。

 また、反射と屈折も同時使用できる方法が見つかりました。ただしこちらは割と裏技的な物なので、いずれ修正される可能性があります。

■Eevee による反射


 下図のような、立方体と二つの平面を例に取り、真ん中の平面に反射と屈折を設定してみます。



 Eeveeレンダーで反射と屈折を行うには、Screen Space Reflection(スクリーンスペース反射、以降 SSR)を使用する必要があります。
 SSR は Render(レンダー)プロパティ→▼Screen Space Reflection(スクリーンスペース反射)をONにすれば利用可能になります。

 あとは中央の平面のマテリアル内の、Principled(プリンシプル)BSDF の Roughness(粗さ)を低く、Transmission(伝播)を最大にしてみれば、反射している様子がよくわかります。



 さて下図のようになりましたが、ご覧のように立方体の底が表示されていません。これが表示されるように、次にライトプローブを追加します。




■ライトプローブによるSSRの補完


 Screen Space Reflection(スクリーンスペース反射)はその名の通り、スクリーンスペースでの反射ですので、画面内にない物は反射できません。それを補うのが、ライトプローブです。

 ここでは平面用の Reflection Plane(反射平面)を設定してみます。

 追加(Add)メニュー→ Light Probe(ライトプローブ)→ Reflection Plane(反射平面)を選択して追加します。





 平面に重なるように拡大・移動します。このライトプローブは縦4段に分かれたワイヤーフレームで表示されており、中央の面に、ライトプローブにより生成されたデータが表示されます。ここに反射の状況が見えますので、これを見つつ、反射させる面のほんの少し上側になるようにしてください。




 反射している状態が表示されます。もし必要なオブジェクトが映り込んでいなければ、Properties Editor(プロパティエディター)のオブジェクトデータタブ→▼Probe(プローブ)→Distance(距離)を大きくしてみてください。

 このままでは実際に平面オブジェクトに映り込んでいるのかが判りづらいので、▼Viewport Display(ビューポート表示)の Show Data(データを表示)を切ってください。




■Eeveeによる屈折


 次は屈折です。レンダーとマテリアルの2箇所を設定します。

 まず、Render(レンダー)プロパティ→▼Screen Space Reflection(スクリーンスペース反射)→Refraction(屈折)をONにします。
 次に反射したい平面オブジェクトを選択後、Material(マテリアル)プロパティまたはサイドバー内の、▼Settings(設定)パネル内の Refraciton(屈折)をONにします。



 下の市松模様が見えるようになりましたが、ふと見ると上の赤いキューブの上部分が伸びて変なことになっています。



[5月21日追記]
 「映り込む側」(ここではキューブ)
の Material(マテリアル)プロパティまたはサイドバー→オプションタブ内の、▼Settings(設定)パネル内の Blend Mode(ブレンドモード)を Alpha Blend(アルファブレンド)にします(もし面が裏返ってしまった場合は Backface Culling(裏面の非表示)をONにします)。

 これもやはり応急処置的な方法で、正しい設定ではないように思われます。今後のバージョンで修正される可能性がありますし、バグ報告済です。くれぐれも利用にはご注意ください。


 これは Material(マテリアル)プロパティまたはサイドバー内の、▼Settings(設定)パネル内の Refrection Depth(屈折の深度)を0.1mにしてやれば直ります。
[5月14日追記]実際は屈折が起こらず、単に透過するだけのようで、もう少し調査が必要です。





■反射と屈折の併用


 実はもうすでに Reflection Plane が使用された時点で、反射と屈折の併用ができているのですが、あと一つ仕事があります。
 少し中マウスボタンをドラッグして、回転させてみると、上の鏡像が回転せず、更新もおかしくなっています。



 修正方法ですが、Material(マテリアル)プロパティまたはサイドバー内の、▼Settings(設定)パネル内の Blend Mode(ブレンドモード)を Alpha Blend(アルファブレンド)にするとなぜか直ります。






■終わりに


 最初にも書きましたが、今後はこのような面倒なことをしなくても、普通に設定できるようになる可能性はあります。とりあえずの応急処置として覚えておくと役に立つかもしれません。



Blender.jpにて更に多くのニュース記事をよむことができます
https://blender.jp

このニュース記事が掲載されているURL:
https://blender.jp/modules/news/index.php?page=article&storyid=4133