前書き
- unlit芸という言葉はこの記事を書いた時点では存在しないようです・・・本職はもっとやばいんだろうなあ
- UE4はデフォルトでフォトリアリスティック用の設定が有効になっているので解除します。
- 本題とずれるため備考に記載します。
目次
- 実装概要
- アンビエントと偽ディフューズの比率を決定
- 偽ディフューズの実装
- normalマップの実装
- matcapマップの追加
- cubeマップの追加
実装概要
まず今回実装するシェーダーの大まかな式を示します。
color = lerp((アンビエントx + 偽ディフューズ(1-x) + matcap),cube,y)
アンビエントと偽ディフューズの比率を決定
合計を1にしたらベース色とぶれなくなります。変数で影のかけ具合を変更出来ます。
偽ディフューズの実装
偽ディフューズ = pow(dot(法線,カメラ方向),ベース色のHSVのV*8+2)*ベース色
常にカメラから見て角度が90°のところが暗くなるタイプのなんちゃってシェーディングです
normalマップの実装
normalマップをいい感じにしてくれる関数があるのでそのまま利用します。(normalmapMltは凹凸の具合の調整用)
matcapマップの追加
普通にmatcapです。
このソースは以下のアセットに同梱されてます(爆)
https://www.unrealengine.com/marketplace/ja/slug/knobby-s-matcaps?lang=ja
cubeマップの追加
実装サンプル
https://twitter.com/vak_DJregion/status/1195453585904943104
steamでプレイできるのでよろしくね(ダイマ)