最新(2017年6月現在)バージョン2.86のBulletPhysicsにはPythonでのBullet利用、VR用のサーバー/クライアントプログラム、新API(Bullet3)の物理計算やOpenCLによる剛体計算などが追加されているようです。Bullet3やOpenCLによる計算はゲームプログラムで使えそうですが、複雑でサンプルも少ないようなので、まずはその前にVisualStudio2017でライブラリのビルドと従来API(Bullet2)の剛体計算、DirectX11を使用したデバッグ表示まで作成してみます。
タグ: DirectX11
Multi-Layer Weighted Blended Order-Independent Transparency
投稿日:前回紹介したWeighted Blended OITは、ポリゴンの距離が離れすぎると半透明の重ね合わせが不自然になる問題があるため、それを解決する方法を考えてみました。
カメラからの距離でポリゴン(ピクセル)をレイヤ分けして描画、最後に遠くのレイヤから合成していくことで問題を解決します。同一レイヤ内にポリゴンが複数存在した場合は、Weighted Blended OITを利用してレイヤの代表値を1つ求めて、その値でレイヤ合成を行います。
レイヤ分けするためにはレイヤ数だけ繰り返し描画する必要がありますが、MSAAの機能を利用して1回の描画で行う方法を考案できたため、比較的簡単に実装できるようになっています(裏技的な使い方です)。
続きを読む Multi-Layer Weighted Blended Order-Independent Transparency
Weighted blended order-independent transparencyの実装
投稿日:順番に依存しない半透明の描画技術(Weighted blended order-independent transparency)をDirectX11で実装してみました。
半透明を重ねて表示する場合遠くから順に描画する必要がありますが、この技術を使えば描画順序に関係なくソートした描画結果に似た結果が得られます。
DirectX11アルファテストはどこへ? discard/clip命令とAlphaToCoverage
投稿日:DirectX11シェーダー入門
投稿日:シェーダーを使いたい、勉強したいと思っても作成する環境が必要です。
なのでVisualStudio2017とDirectX11でシェーダーをコンパイルして実行結果の確認ができる最小限の環境を作成してみました。シェーダー入門とありますがシェーダーの書き方ではなく、シェーダーを書くまでに必要な設定などについての説明です。
ソースコードを公開していますので参考にしてください。
続きを読む DirectX11シェーダー入門
VisualStudio2017(Windows10 DirectX OpenGL)で始める3Dプログラミング
投稿日:今(2017年5月)Windows&C++で3DプログラミングするならDirectXかOpenGLだと思いますが、最新バージョン(DirextX12など)は、性能重視のため手軽にプログラミングができなくなっています。
なので古いバージョンで使えるものを調べて、プログラミングができる環境を作ってみました。
作成した環境は、OpenGL1.1、OpenGL4.5、DirectX9、DirectX11、DirectX12で、初期化と画面クリア、簡単なポリゴンの描画まで行っています。
VSプロジェクト、ソースコードを公開していますので、3Dプログラミングの参考にしてください。
記事最後にあるダウンロードボタンから取得できます。
続きを読む VisualStudio2017(Windows10 DirectX OpenGL)で始める3Dプログラミング
VisualStudio2013でDirectX11プログラミング
投稿日:VisualStudio2013でDirectX11プログラミングをしてみる。必要なのはVisualStudio2013のインストールのみ!
使用するVSのバージョンは”Visual Studio Express 2013 for Windows Desktop”。