DirectionalSphre
https://skydrive.live.com/?cid=9bd87d92867ebedd
※画像はCaeruさんのツイートの転載です(リンクが転載元)
https://twitter.com/Caeru_Odin/status/461094529416708096
効果)
カメラのZ軸回転にスフィアの方向が付いていくようにする
利点)
髪の毛の天使の輪などが崩れない
欠点)
スフィアのZ軸回転を固定するので不自然な材質もあるかも?
動いているとわかりにくいのでどちらかというと静画向き
使い方)
単独でシェーダーとして使えるけど他のシェーダーに組み込み可能
(舞力介入Pのfull.fxシェーダーがベース)
①「DirectionalSphere.h」というファイルを組み込むシェーダーのフォルダに入れる
②シェーダー冒頭の「パラメーター宣言」付近に.fxの以下をコピペ
// パラメータ宣言
// LocalNormalToDirSphのアレをインクルード
#include "DirectionalSphere.h"
// LocalNormalToDirSph関数を使えるようにします
DEC_LOCAL2DIRSPHERE( "頭", float3( 0, 1, 0 ) );
// スフィアのUV計算のところでLocalNormalToDirSphを呼んでます
(シェーダーによってパラメーター表記などに多少違いあり)
if ( useSphereMap ) {
if ( use_subtexture ) {
// PMXサブテクスチャ座標
Out.SpTex = Tex2;
} else {
// スフィアマップテクスチャ座標
Out.SpTex = LocalNormalToDirSph( Out.Normal );
}
https://twitter.com/Caeru_Odin/status/494156925005619201
メモ:「AlternativeFull.fxsub」は上書き保存してもMMD上では自動更新されない
「.fx」を上書き保存するか、読み込み直さないと書き換えが反映されない
例2)HAToon2の場合
https://twitter.com/Caeru_Odin/status/502146662790221824
メモ:「HACore.hlsl」を書き換える
「.fx」を更新しないとMMD上に反映されないのは(例1)と同じ
M4Toonなども同様に書き換え可能