カテゴリー別アーカイブ: シェーダ

BulletのSoftBodyでスカートを揺らしてみる

前回のぬいぐるみを作ってみるでは、モデル全体をSoftBodyで動かしていましたが、今回は部分的に動きを反映させてみます。ただし、通常のボーンとSoftBodyの動きを混ぜることはできません。完全に動きを分離できるものに限ります。その条件を満たしているオブジェクト(スカート、髪など)をSoftBodyで揺らし、それ以外はモーションデータで動かします。
部分的な反映はボーンによるスキン変形の仕組を利用しているので対応は簡単ですが、ボーンの動きにSoftBodyやコリジョン用剛体を追従させる処理が簡単ではないため、その方法を中心に解説します。

SoftBodyをスカートなどに
SoftBodyをスカートなどに

続きを読む BulletのSoftBodyでスカートを揺らしてみる

DX11エフェクトシステム作成 Part4 ツール作成

コンパイル結果をバイナリデータに、コンパイラをオフラインツールにしてVisualStudioに組み込みます。バイナリデータは、ファイル出力とC++ソースコード(配列データ)の2形式で出力できるようにする。VSの組み込みはカスタムビルド。
とりあえず、これで完成。これまでで得られたもの、シェーダの知識(変数、コンパイル)、字句解析処理、カスタムビルドの方法など。

続きを読む DX11エフェクトシステム作成 Part4 ツール作成

D3DCOMPILER_xx.dllがない! シェーダのコンパイルについて

DirectX11プログラムでシェーダのコンパイルを行っているとexeファイルを起動時に”D3DCOMPILER_xx.dllがない”というエラーが発生して起動できません。VisualStudio2012のデバッガで実行した場合は起動できます。単純にdllをインストールすればいいといわけではなさそうなので調査してみる。

続きを読む D3DCOMPILER_xx.dllがない! シェーダのコンパイルについて

DX11エフェクトシステム作成 Part3 変数情報取得

コンパイルしたシェーダバイナリコードから使用されている変数の情報を取得します。ただしEffects11のような複雑(詳細)な情報ではなく必要最小限の情報のみ扱います。

続きを読む DX11エフェクトシステム作成 Part3 変数情報取得

DX11エフェクトシステム作成 Part2 コンパイラ作成

FXファイルのコンパイラを作成します。ただし一部の仕様のみに対応した簡易コンパイラです。複雑な構文解析は行わないので、文字列によって処理を分岐させる程度のプログラムになります。

続きを読む DX11エフェクトシステム作成 Part2 コンパイラ作成

DX11エフェクトシステムの作成 Part1 FXファイル解析

DirectX11ではEffect関連の機能が削除されていて、使用するには別途公開されているEffects11ソースコードが必要なります。しかし、その説明には古いコードの移植支援とあるため、あまり推奨されているものではないようです。
そこで、EffectのFXファイルを使用した独自のエフェクトシステムを作成してみます。
まず最初はFXファイル(HLSL)の字句解析と構文解析を行い必要な情報を取得できるようにします。

続きを読む DX11エフェクトシステムの作成 Part1 FXファイル解析