トップページ > 記事閲覧
VertexShaderを使用した場合のアニメーション
名前:gura 日時: 2016/01/09 00:02

以下のVertexShaderを適応したところアニメーションが変なふうに再生されるか、再生されません。 float4 cfProjectionMatrix[4] : register( c2 ) ; // ビュー  → 射影行列 float4 cfViewMatrix[3] : register( c6 ) ; // ワールド → ビュー行列 float4 cfLocalWorldMatrix[3] : register( c94 ) ; // ローカル → ワールド行列 float4 main(float4 pos : POSITION):POSITION { float4 outPos; float4 lWorldPosition; float4 lViewPosition; // ローカル座標をワールド座標に変換 lWorldPosition.x = dot( pos, cfLocalWorldMatrix[ 0 ] ) ; lWorldPosition.y = dot( pos, cfLocalWorldMatrix[ 1 ] ) ; lWorldPosition.z = dot( pos, cfLocalWorldMatrix[ 2 ] ) ; lWorldPosition.w = 1.0f ; // ワールド座標をビュー座標に変換 lViewPosition.x = dot( lWorldPosition, cfViewMatrix[ 0 ] ) ; lViewPosition.y = dot( lWorldPosition, cfViewMatrix[ 1 ] ) ; lViewPosition.z = dot( lWorldPosition, cfViewMatrix[ 2 ] ) ; lViewPosition.w = 1.0f ; // ビュー座標を射影座標に変換 outPos.x = dot( lViewPosition, cfProjectionMatrix[ 0 ] ) ; outPos.y = dot( lViewPosition, cfProjectionMatrix[ 1 ] ) ; outPos.z = dot( lViewPosition, cfProjectionMatrix[ 2 ] ) ; outPos.w = dot( lViewPosition, cfProjectionMatrix[ 3 ] ) ; return outPos; } オリジナルシェーダを適応する場合自分でキーフレームアニメーションを、 しなければならないのでしょうか?。 よろしくお願いします
メンテ

Page: 1 |

VertexShaderを使用した場合のアニメーション ( No.1 )
名前:gura 日時:2016/01/09 01:02

追記 モデルはMV1形式をし使用しています。
メンテ
Re: VertexShaderを使用した場合のアニメーション ( No.2 )
名前:管理人 日時:2016/01/10 03:03

お使いの3Dモデルはスキニングメッシュモデル(一つのメッシュが複数のボーンの影響を受けるモデル)でしょうか? 載せていただいたコードは剛体モデル用(一つのメッシュが一つのボーンのみ影響を受けるモデル)のものですので、 もしスキニングメッシュでしたらこちらのサンプル <1頂点へ影響を与えるフレームの数が1〜4個のスキニングメッシュのライティング無し描画> http://homepage2.nifty.com/natupaji/DxLib/program/dxprogram_3DModelShaderBase.html#R1N2 のように頂点毎にローカル→ワールド行列を作成する処理が必要になります
メンテ
Re: VertexShader使用した場合のアニメーション ( No.3 )
名前:gura 日時:2016/01/11 02:34

対応ありがとうございます 無事アニメーションできました
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存