2024年11月29日金曜日

[Arnold]シェーダーパラメーター・Metalness金属再現編

以前の記事でMetalnessが何をしてるのか大枠を説明しました。

今回はMetalnessを使って金属の質感を再現する方法について見ていきましょう!


Metalnessを使わない金属の反射の再現方法

金属の反射を再現するのに、フレネル反射モデルで使われるn値とk値の2つのパラメータがあります。これらは、物質の光の反射特性を定義するために使われます。

n値(屈折率): 金属の表面における屈折率を示し、光がその表面に入るときの屈折の度合いを決めます。

k値(消衰係数): 光が金属内部に入ったときの減衰や吸収の度合いを示します。k値が高いと、光がすぐに吸収されるため、表面での反射が強くなります。

この2つの値を使うことで、CGでリアルな金属の見た目、特に色や光沢の正確な表現が可能になります。

アーノルドでは以前これをComplex IORというシェーダーで再現可能でしたが、こちらは現在使えないと思います。

Metalnessの目的

Artist Friendly Metallic Fresnel

↑2014年のこちらの記事が詳しく記載してくれています。

Metalnessは、n値とk値を直接扱う代わりに、もっと直感的に金属の見た目を再現できる仕組みです。

n値 → F0(正面からの反射率)

k値 → F90(斜めからの反射率)

と変換し、アーティストがスライダーや色を設定するだけで、複雑な金属のフレネル効果を簡単にシミュレーションできます。

これにより、物理的に正しい金属表現をアーティストが手軽に行えるようにするのがMetalnessです。

金属再現の際に使う数値一覧とレンダー画像

こちらはアーノルドで金属を再現するための数値表です。

アーノルドユーザーガイドより参照

上の図のリストのようにパラメーターを設定することで現実の金属の計測値をもとに質感を設定することが可能です。

Metalnessを1にしたうえでBase ColorとSpecular Colorにそれぞれの色を入れることが必要です。

金(Gold)に設定するならこんな感じです。


上のアーノルドの表の9つの金属をすべて設定してレンダリングするとこんな感じです。

こうやって見ると白系の金属もそれぞれ結構違いますね。

今回はここまで!

Metalnessをうまく使って金属をかっこよく見せていきましょう!