質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

Q&A

1回答

300閲覧

アニメーションモデルにシェーダー効果をあてたい

toshiya1213

総合スコア11

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

0グッド

0クリップ

投稿2017/08/11 17:09

###環境
DirextX9,
Visual Studio 2015使用
###前提・実現したいこと
アニメーションモデルにシェーダー効果をあてたい。

###発生している問題
現在アニメーションモデルを描画していまして、そのアニメーションモデルにシェーダー効果をあてたいのですが、いざ描画しようとすると動いていたアニメーションモデルはT立姿勢になってさらにはテクスチャが貼られていない状態で描画されてしまいます。
シェーダーをする際どのような処理にすればアニメーションとテクスチャが張られるようになるのでしょうか?
回答お願いいたします。

###該当のソースコード
シェーダー描画している部分を載せます。
effect->Begin(&passes, 0);
/**
*passesが0の時通常の描画を行う
*passesが1の時シェーダー効果をあてる
/
for (passes = 0; passes < 2; passes++)
{
effect->BeginPass(passes);
//1の場合アルファブレンドセット
if (passes == 1)
{
CLibrary::AlphaBlend(true, false, D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA);
}
pMtrl = a->AnimHandle.GetMaterials(&a->AnimHandle.pFrameRoot);
for (i = 0;i < a->AnimHandle.GetNumMaterials(&a->AnimHandle.pFrameRoot);i++)
{
color.x = pMtrl->Diffuse.r;
color.y = pMtrl->Diffuse.g;
color.z = pMtrl->Diffuse.b;
color.w = pMtrl->Diffuse.a;
effect->SetVector(m_hvCol,&color);
effect->CommitChanges();
//ここでアニメーションモデルの描画を行う
a->AnimHandle->Render();
pMtrl++;
}
effect->EndPass();
}
//描画終了する
effect->End();

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/08/14 05:20

タグにC++とか使用している言語も追加したほうが良いかも?
guest

回答1

0

[テクスチャ]
ピクセルシェーダで処理 サンプラが必要 9はどうだろ
[アニメーション]
スキニングで検索
[合成行列] = [ボーンオフセット行列] × [自身のローカル姿勢] × [モデルのワールド変換行列]
こいつをGPUに投げればいい
あとはキーフレームごとに動かした後[補完]が必要
「球面線形補完」だっけまあそれFKの話だけど
IKでやるにはもっと複雑になるらしいよ

投稿2018/04/15 22:45

ryo19

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問