ユーザーブロマガは2021年10月7日(予定)をもちましてサービスを終了します

【MME】ikPolishShaderの材質パラメータ
閉じる
閉じる

【MME】ikPolishShaderの材質パラメータ

2015-03-08 20:00
    【2015/12/28追記】画像を差し替えました。文章も若干手を加えました。
    【2015/12/07追記】【MME】ikPolishShaderの使い方(材質編) (sm27742363)を作成しました。

    0. 注意

    このページでは、ikPolishShaderのパラメータについて説明します。ikPolishShaderはPBR(物理ベースレンダリング)と呼ばれる手法を参考に作成しており、パラメータもだいたい共通していますが、適当な実装なので、PBRそのものとは異なる挙動をします。

    1. パラメータの設定方法

    材質パラメータを設定するにはいくつかの方法があります。
    1. MaterialMap.fx(をコピーしたもの)に直接値を書き込む
      • テキストエディタがあれば調整できます。
      • モデルの材質単位でしか値が設定できないため、細かく設定することができません。
      • 服と肌が同じ材質に割り当てられている場合などでは、PMXエディタでモデルの材質を分離する必要があります。
    2. 材質ファイルに値を描き込む
      • 画像編集ソフトで作成します。
      • テクセル単位で材質を指定できます。
      • metalness値を1にしたい場合は、画像のRチャンネルを255にする。という感じで各チャンネルに材質の値を設定します。
      • モデルに適切なUVが設定されていないと、上手く指定できません。
    3. PMXにPMXエディタで値を埋め込む
      • これについては今回は説明しません。

    2. 金属度(Metalness)

    素材が金属かどうかをあらわします。基本的には0(非金属)か1(金属)だけを用います。



    左ほどMetalnessの値が低く、右ほどMetalnessの値が高くなります。なお、以降の画像も右にいくほど高い値になります。

    非金属ではハイライトの色がライトの色だけで決まるのに対して、金属はライトの色と金属自体の色の影響を受けます。また後述する、反射率の指定方法に影響します。

    PBR的には塗装された金属やさび付いた金属(のさび部分)は非金属扱いになります。

    3. 滑らかさ(Smoothness)

    素材の表面が滑らかなのか、マットなのかを指定します。なお、目に見えてザラザラしている場合は、法線マップで表現したほうがよいでしょう。

    金属でのSmoothnessの変化。


    非金属でのSmoothnessの変化。


    Smoothnessが高い(右側)ほどハイライトが強く小さくなります。

    PBRでは粗さ(Roughness)を使う派閥と、滑らかさを使う派閥があるようです。Roughness = 1 - Smoothnessの関係になります。ラフネスマップを使う場合、反転して使ってください。

    4. 映り込み強度(Intensity)

    映り込みの強さ。



    Smoothnessの画像を見てもらえば分かるように、Smoothnessが低いほど、ハイライトや映り込みは弱くなります。布などのように一見映り込みが無いように見える素材も、Intensityが低いために映り込みが弱いのではなく、Smoothnessの値が低いだけかも知れません。

    基本的には1.0のままにしておき、それでも気になる部分だけ下げたほうがいいでしょう。

    5. 反射率(Reflectance)

    視線との角度による映り込みかたの変化を表します。
    ikPolishShaderでは、非金属の場合の反射率をNonmetalF0で指定します。金属の場合は、反射色を反射率として使用します。



    鏡などの反射率が高い素材は、角度が変化しても反射率はほとんど変化しませんが、非金属の場合は、角度が水平に近づくほど映り込む度合いが大きくなります。画像の左端の球は、中央部で映り込みが無いものの、エッジ周辺がやや明るくなっていることが確認できます。

    非金属の場合、一般的に0.05程度になり、ダイアモンドでも0.18程度です。なお画像左から2つ目の球は0.14が設定されています。

    6. まとめ

    • 金属または金属風の光沢を持つ素材はMetalnessを1に、それ以外は0にする。
    • 滑らかな素材はSmoothnessを高くする。マットな素材は低くする。
    • 目に見えるほどのデコボコを表現する場合は法線マップの使用を検討する。
    • Intensityは基本的には1固定。明る過ぎて気になる部分だけ下げる。
    • 非金属の反射率は基本的に0.05固定。ガラスや宝石の場合でも0.2以上にしない。
    上記はあくまで外さないための設定なので、良い感じになるなら、どんな値を設定してもいいと思います。

    7. 謝辞

    背景には以下のモデルをお借りしています。公開していただきありがとうございます。



    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。