前日記事でMMEffectプログラムコードを書き換えて
グレースケールシェーダーを作ってみました。
(グレースケールシェーダー適用例)
エフェクトのベースとして使われているfull.fxファイルに
グレースケール化する記述を追加したのが、グレースケ
ールシェーダーです。
上の画像で言うと左手前のモデルのシャツとネクタイ、
右奥のモデルの髪の毛に適用してます。
シェーダーは画面全体だけでなく材質毎に色調補正
する使い方も出来るのであると便利です。
(元画像)
今回からもう少し複雑な仕組みのエフェクトコード
編集にトライしてみようと思います。
挑戦するのは[[光学迷彩エフェクト]] です。
光学迷彩エフェクトを適用するとこのような感じに
なります。
(ステルス化する光学迷彩エフェクト)
MMD画面中央星マークあたりにモデルが後ろ向きに
立ってます。
光学迷彩エフェクトはモデル色を透明にして光の屈折
を変える事で背景を歪ませてモデルの立体感を表現
する効果のエフェクトです。
このエフェクト効果を見るとすごく複雑な記述じゃない
かと思ってしまいますが、どういう仕組みなのか
興味が湧いてきました。
光学迷彩エフェクトの解説文を書かれているのは
エフェクト製作者のビームマンP様です。
(光学迷彩エフェクト解説ページ)
3DCGツール「MikuMikuDance」のエフェクトを拡張する「MikuMikuEffect」
はじめてのエフェクト制作
MikuMikuEffectで学ぶHLSL入門(4)
ビームマンP [著]
CodeZine [コードジン]
http://codezine.jp/article/detail/6192
→カンタンな記述のシェーダーFXファイルに追記
していく形でコード内容について説明されてます。
まず改変する元となるシェーダーFXファイルをMMDで
確認してみます。
(改変元シェーダー)
元となるSimple.fxファイルはモデル(材質)を虹色
グラデーション(テクスチャ画像)で塗りつぶす記述
になってるのでそこに歪ませて見せるコードを書き
足していきます。
(歪み量を色で表す)
歪み量を指定するコードを追加しました。
float add = (1-dot(normalize(IN.Eye),normalize(IN.Normal)));
Eye 視線のベクトル(カメラ座標-頂点座標)
Normal 法線(頂点の向き)
normalize 正規化関数
法線が視点方向からずれるほど歪みが大きくなる
という事を色で表したのが上の画像です。
黒色ベースでモデルの外側に行くほど歪みの
ピンクが濃く描画されてます。
歪み量を設定したので、次は歪ませる方の背景画像
情報を取得するコードを追加します。
法線や正規化関数など理解するまで時間がかかり
そうなのでとりあえず作ってみる事にしました。
(今回はココまでです。)
〇 ポリめりminiコーナー 〇
めり誕静止画作成に向けてエフェクトの試行錯誤
を続けてます。
(2日前に作った画像)
髪の毛の質感はリアル系な感じが気に入ってます。
肌質感がもう少しアップするといいなと思いながら
作ってみたのが下の画像です。
(1日前に作った画像)
2日前より硬い感じの仕上がりになりました。
同じモデルなのに髪色はかなり違って見えます。
肌質的にはコチラの方で行きたいかな。