time: 08:00

ハイライト

スペキュラーによるハイライトを入れます。

今回は単純なPhongシェーディングで実装しましたが、きっちりやらないと綺麗に出ないですね。

  1. ベースマテリアルを弄ります。前項の「if」ノードの後に、Phong計算を入れてスペキュラーハイライトを加算します。
    • 「Power(Max(Dot(法線, Normalize(カメラの方向+ライトの方向)), 0), SpecularPower)」までがPhong計算式です。
    • 広がり方、閾値、強さをそれぞれパラメーター化しました。
    • 「ValueStep」で2値化しました。(ライティング2値化の所で説明→リニアなライティング結果を2値に
    • 最後にベースカラーに加算した後、値が1.0を超えることがあるのでClampしています。エミッシブカラーに繋いでいるので、1.0を超えるとブルームが発光し出します。
      model_20.png
  2. 結果。あんまり真っ白なのは合わない気がしたので弱めに。うーん、微妙だなー。顔は消してもいいかも
    model_21.png
  3. 設定パラメーター
    テクスチャ名Specular PowerSpecular ScaleSpecular Threshold備考
    clothes50.00.0050.8あまりハイライトが強すぎるとフィギュアとかの質感になるので抑え目
    eye50.00.00.5目は要らないので、Specular Scaleを0.0にして消す
    face50.00.00.5微妙なんで消した
    facial50.00.00.5要らないので、Specular Scaleを0.0にして消す
    hair150.00.10.8
    hair250.00.10.8
    skin50.00.30.2

リムライト

セルシェーディングでは度々リムライトが実装されるようです。なので対応してみます。

  1. ベースマテリアルを弄ります。先ほどのベースマテリアルの「Add」と「Clamp」ノードの間に追加します。
    • Fresnel」ノードで、フレネル値を取得できます。
      • フレネルとは、カメラが見ている方向と法線が垂直な所が1.0が返ってくる計算です。垂直から80度、70度となるにつれ0.0になっていきます。
    • リムライトは輪郭部分の逆光表現ですので、フレネルの値がそのまま使ってもそれっぽくなります。
    • 閾値、強さをそれぞれパラメーター化しました。
    • こちらも「ValueStep」で2値化しました。(ライティング2値化の所で説明→リニアなライティング結果を2値に
      model_22.png
  2. 結果。とりあえずマテリアルインスタンス個別での調整は無し。
    model_23.png

割と絵が騒がしくなってきた感がありますが、一項目ごとに細かく調整するよりは
機能をある程度実装した後に纏めて調整した方がいいので置いておきます。
必要無ければその時消せばOK。



    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS