したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

MMD関連プログラミングスレ

135名無しさん@お腹いっぱい。:2010/10/29(金) 00:55:45 ID:aty9/j9s0
あら・・・、そのままコード使って見たほうが簡単なのだけど
とりあえず上手く出来ていないようなので解説を少し。

あのサンプルは、compute_tangent_frame関数と下記の部分が重要で
下記のコードのnormal(法線)に入る値は接空間とか考えずに
何時もどおりのワールド座標系で得られるので、深く考えずに扱えるよー
※PS内
float3x3 tangentFrame = compute_tangent_frame(In.Normal, In.Eye, In.Tex);
float3 normal = normalize(mul(2.0f * tex2D(normalSamp, In.Tex) - 1.0f, tangentFrame));

ちなみに、compute_tangent_frameの引数だけれど、VSの方を見てもらえば分かることでもあるけど
In.Normalは、何時もどおりワールド変換したものを
(Test1.fxでは、単純に正規化のみされてますね、ワールド変換してあげると良いかと)
In.Eyeは、正規化しないで視線ベクトルそのままを渡してあげる必要があるです。
(正規化されてると角度によって凹凸が反転しちゃうので注意です。Test1.fxでは、正規化されてますね。)

でー、無粋かもですが、もしすっ飛ばして使えるものが即ほしければ
同じところに下記があるので、ノーマルマップとか視差マップを
テクスチャさえ用意すれば使えるレベルで実装してみたものがあるのでどうぞです。
advancedTextureMapping.zip
advancedTextureMapping2.zip


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板