Bullet Physics ソフトボディーを使ってみる

Bullet PhysicsのSoftBodyが前から気になっていたので試してみます。ソフトボディーと聞いてまず”ぬいぐるみ”を思い浮かべたので、ぬいぐるみっぽい動きを実現することを目標にします。
まずは、任意形状のポリゴンモデルをSoftBody機能を使って動かすために必要な準備やパラメータ設定を調べ、実験用プログラムを作成します。

ソフトボディー(任意形状) GIFアニメ
ソフトボディー(任意形状) GIFアニメ

続きを読む Bullet Physics ソフトボディーを使ってみる

Bullet Physicsを使ってみる VS2013&DirectX11

Visual Studio 2013でBullet Physicsをビルド、環境構築してみます。それと、デバッグ表示(OpenGL)をDirectX11での表示に変更してみる。
新バージョンの使い方 Bullet Physicsを使ってみる⇒(Bullet2.86 VS2017 DirectX11)

Bullet Physics デバッグ表示
Bullet Physics デバッグ表示

続きを読む Bullet Physicsを使ってみる VS2013&DirectX11

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

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

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

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

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

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

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

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

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

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

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

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

D3DPreprocessでプリプロセス

スクリプトやテキストデータを記述する際、Cプリプロセッサの機能があればかなり便利になります。しかし、それを実装するのは大変です。コンパイラ付属のプリプロセッサは入出力がファイルなので使い勝手がわるい。何かないか探していたところDirectxのシェーダコンパイラ関連の関数にD3DPreprocessというものを発見、使ってみる。

続きを読む D3DPreprocessでプリプロセス

ライトプリパスレンダリング Part3 アンチエイリアス

アンチエイリアス処理を行います。MSAAによるAAを試しましたがうまくいかなかったため、ポストプロセス処理のAAであるSMAA(Enhanced Subpixel Morphological Antialiasing)を実装してみました。かなりいい感じです。ただ、輪郭線処理との相性が悪いため輪郭線描画は無効にしています。
ライトプリパスレンダリングのプログラム作成は、ここで一旦終了します。

SMAA 1x
SMAA 1x

続きを読む ライトプリパスレンダリング Part3 アンチエイリアス

ゲームプログラミングの素