うしろぐ

作ってあそぶよ

UE4のRoughnessと、BlenderCyclesのRoughness

UE4マテリアルについて、Twitterでこんなやりとりがあったのですが、おたがい勘で話し合ってもあれなので、この機会に検証してみようと思います。

f:id:lightwave:20170404150852p:plain

ざっくり用意したラフネス用テクスチャを、メタルマテリアルの平面と曲面にそれぞれ貼って、背景に同じHDRIを使用した、UnrealEngine4とBlender CyclesRenderの比較をします。(カメラや太陽光は目見当で多少のズレがあります)

UE4

UnrealEngine4にラフネスマップを読み込み、貼った状態。

f:id:lightwave:20170404150211p:plain

UnrealEngine4にラフネスマップを読み込み、sRGBのチェックを外した状態。

f:id:lightwave:20170404150218p:plain

UnrealEngine4にラフネスマップを読み込み、圧縮をHDRに変更した状態。

f:id:lightwave:20170404191233p:plain

Blender

BlenderCyclesにラフネスマップを読み込み、貼った状態。

f:id:lightwave:20170404150302p:plain

BlenderCyclesにラフネスマップを読み込み、非カラーデータに切り替えた状態。

f:id:lightwave:20170404150222p:plain

SubstancePainter2のラフネスをCyclesで再現する方法を調べてたときに使われていた数式ノード(乗算もしくはパワー、どちらも同じ結果に見える)を使用した状態。

f:id:lightwave:20170404155419p:plain

比較した印象

UE4では暗部の繊細な表現が飛んでしまったように見えます。接近することでディテールの存在は確認できますが、このくらいの距離では省略されてしまうようです。ブログの画像では確認が難しいかもしれませんが、UE4では一番右のグラデーション部分にトーンジャンプが見られます(追記:トーンジャンプは圧縮タイプをHDRに変更することで回避できました)。比較画像があると、レンダリングから移行する人がリアルタイムに期待しすぎない、さじ加減が分かりやすくなりますね。

どちらもノードで調整することで、より理想に近づけることが出来ると思いますが、UE4のマテリアルノードでの方法が理解できていないので、今回は触れません。

覚えておきたいメモ

ラフネスマップは、画像そのものの色を映すためのテクスチャではないため、UE4ならsRGBのチェックを外す、Cyclesならカラーを非カラーデータに切り替える必要があります。

 

今回の比較のため、Allegorithmicのフォーラムで「UE4ではsRGBチェックを外す」情報を見つけたのは収穫でした。

Roughness issue in UE4

以前もNormalMapで似たような問題に悩まされたけれど、こういう情報は現場の方々の「知っていて当然」という知識であまり表に出てこない。

これをまた忘れたときのためにブログ書きました(笑)

 最後に

Cyclesのマテリアルやライティングを勉強するなら、

Blender CGイラストテクニックが一番!楽しいレンダリング沼へようこそ!