7.茶エンジンのDirectX12対応
3月から本格的にゲーム制作を始めた訳ですが、その下準備として開発環境を整えて、コードも最新環境で開発できるようにします。
今までVisualStudio2013で開発してきましたが、今回からVisualStudio2019 Communityを使用します。おそらく世間の大半の人はもうWindows10を使っていて、Windows7を使っている人は少数派になっていると思いますのでDirectXのバージョンも12に対応してほとんどの人は不都合ないと思っています。・・という訳で、今回は今までDirectX11で開発していた茶エンジンをDirectX12に対応させることにしました。
まあ、初めてDirectX12を使ってみたので不甲斐ないコードかも知れませんが、とりあえず動く・・と思います。茶エンジンのAPIに関しては”鈴音と鬼ごっこ”を作った時にボリュームライトの実験をしたことでコードが増えたので、今回初期のライブラリに戻って、基本的なモデルの描画とボーンのアニメーションの部分のみ実装した辺りから再構築していこうと思います。・・という訳でDirectX12対応の茶エンジンとModelViewerを作りました。モデル描画のシェーダなどはあまり凝ったものは用意していません。まあトーンシェーダとかこだわりたい人は好きにいじってください。
今までVisualStudio2013で開発してきましたが、今回からVisualStudio2019 Communityを使用します。おそらく世間の大半の人はもうWindows10を使っていて、Windows7を使っている人は少数派になっていると思いますのでDirectXのバージョンも12に対応してほとんどの人は不都合ないと思っています。・・という訳で、今回は今までDirectX11で開発していた茶エンジンをDirectX12に対応させることにしました。
まあ、初めてDirectX12を使ってみたので不甲斐ないコードかも知れませんが、とりあえず動く・・と思います。茶エンジンのAPIに関しては”鈴音と鬼ごっこ”を作った時にボリュームライトの実験をしたことでコードが増えたので、今回初期のライブラリに戻って、基本的なモデルの描画とボーンのアニメーションの部分のみ実装した辺りから再構築していこうと思います。・・という訳でDirectX12対応の茶エンジンとModelViewerを作りました。モデル描画のシェーダなどはあまり凝ったものは用意していません。まあトーンシェーダとかこだわりたい人は好きにいじってください。
ダウンロードはこちらから。
Cha3DCoreLib1.14.1[zip] | 2021/06/12 | download |
Cha3DCoreLib1.14.1 Source[zip] | 2021/04/05 | download |
ModelViewer1.55(exe) [zip] | 2021/04/05 | download |
ModelViewer1.55 Source[zip] | 2021/04/05 | download |
で、このページ、後何するか・・と考えたのですが、もうDirectX12に対応したライブラリとModelViewerをアップロードしたら他にやることないのですが・・(^^;
まあ・・そういう訳でこのページでは初めてDirectX12に取り掛かった感想などを・・。
いやー・・DirectX11と比べるとコード書くのが格段にメンドクサクなってますね・・。パイプラインにコマンドを送って描画の作業と描画準備のパラメータ設定などを並列処理できるようになった辺りは以前DirectX11で自作 GISソフトを作っていた時にフレームレートを上げるために希望していた機能なのでその部分は納得できているのですが・・、とにかく様々な設定をするためにコードの量が膨大に増えまくる・・。今までDirectX9やDirectX11で少しはコードに馴染みのある人ならげっそりするだけで済むかも知れませんが、初心者でゲーム開発に興味を持ってコードを見た人は心折られる人が大勢いると思います。まさに初見殺し。・・で、これだけ複雑になったのだからその分描画には圧倒的なパフォーマンスを発揮するはず・・と期待したのですが・・今回の ModelViewer起動した人は分かると思いますが、・・どこか速くなってるの?まあ、自分もまだDirectX12に関しては全然知識がないのでパフォーマンス改善の部分が沢山あるのだとは思いますが、結局DirectX11からDirectX12に頭悩ませて移行するだけの価値があるのかどうか・・疑問です。まあ、Windowsも時代の流れでどんどん先に進むのでついていかないと仕方ない訳ですが・・。まあ・・その・・ぐちぐち・・。
まあ・・そういう訳でこのページでは初めてDirectX12に取り掛かった感想などを・・。
いやー・・DirectX11と比べるとコード書くのが格段にメンドクサクなってますね・・。パイプラインにコマンドを送って描画の作業と描画準備のパラメータ設定などを並列処理できるようになった辺りは以前DirectX11で自作 GISソフトを作っていた時にフレームレートを上げるために希望していた機能なのでその部分は納得できているのですが・・、とにかく様々な設定をするためにコードの量が膨大に増えまくる・・。今までDirectX9やDirectX11で少しはコードに馴染みのある人ならげっそりするだけで済むかも知れませんが、初心者でゲーム開発に興味を持ってコードを見た人は心折られる人が大勢いると思います。まさに初見殺し。・・で、これだけ複雑になったのだからその分描画には圧倒的なパフォーマンスを発揮するはず・・と期待したのですが・・今回の ModelViewer起動した人は分かると思いますが、・・どこか速くなってるの?まあ、自分もまだDirectX12に関しては全然知識がないのでパフォーマンス改善の部分が沢山あるのだとは思いますが、結局DirectX11からDirectX12に頭悩ませて移行するだけの価値があるのかどうか・・疑問です。まあ、Windowsも時代の流れでどんどん先に進むのでついていかないと仕方ない訳ですが・・。まあ・・その・・ぐちぐち・・。
次回は当たり判定の実装ですが、2回に分けてやるつもりです。
© 2018 Chafumi Touji