DirectX12

DirectX

Windows10 20H1 での DirectX12 周辺の拡張の話

とうとう DirectX にも Mesh Shader が来るのかもしれません。 Microsoft のブログによると、 Windows10 の次のバージョン 20H1 にて次のような拡張が入りそうな感じです。 DirectX RayTracing Tier 1.1DirectX Mesh ShaderDirectX Sampler FeedbackText...
DirectX

ID3D12InfoQueue のお世話になった

描画用キューブマップを各面毎にクリアしたときに警告を出してしまったので、これらについて対処するための小ネタです。 レンダーターゲットを動的なカラーでクリアすると警告 レンダーターゲットを任意のカラーでクリアするとワーニングが発生します。レンダーターゲット生成時に指定したカラー値(デプス値)と違ったものでクリア処理を呼ぶと、パフォーマンスの観点から怒られるよう...
DirectX

DirectX12 でキューブマップ

DirectX12 でキューブマップを使ってみます。 今回は素直な実装で、キューブマップへの描画&利用についても試してみました。 キューブマップは DirectX10 以降では、2Dのテクスチャ画像を6つ保持するテクスチャ配列です。 この6つの面に、±X, ±Y, ±Z の方向を向いた3Dシーンが描画されています。これを環境マップとして使用して、反射先の色と...
DirectX

DirectX Shader Compiler でワーニング(in C/C++)

自分の C/C++ コードの中で DirectX Shader Compiler を使って、シェーダーをコンパイルするときに妙なものに出会いました。 シェーダーのソースコードからコンパイルしてバイナリデータは正常に得られるのですが、次のようなワーニングに出会いました。 renderCubemap.hlsl:39:2: warning: null charac...
DirectX

DirectX12 でジオメトリシェーダーを活用

DirectX12 でジオメトリシェーダーを使って遊んでみています。前回はポイントスプライトをやってみたので、今回はもう少し遊べるものをやってみました。 ひとつのアイデアとして、カメラのニアクリップに掛かる前に、ジオメトリシェーダーでよろしく処理をするというのを見かけました。通常カメラのニアクリップに掛かると、ポリゴンが欠けるようか割れるというか、あまり芳し...
DirectX

DirectX12 でポイントスプライト

DirectX12 でジオメトリシェーダーを使った話をあまり見てなかったので、ちょっと試してみようと思います。ジオメトリシェーダーといえばプリミティブを生成できる特徴があるので、ポイントスプライトなどをやってみました。 描画手順 頂点データとしては位置情報を与えて、それを頂点シェーダーで座標変換します。その後、ジオメトリシェーダーで四角形を生成して描画します...
DirectX

DirectX12 フルスクリーンの罠

DirectX12 でフルスクリーン描画を行おうとしたときに、予想外に色々と苦戦しました。 DirectX12 というよりは、フルスクリーンは DXGI の機能・制御管轄なので、もしかすると今回の話は DirectX11 でも症状が出るのかもしれません。もしかすると環境要因もあるのかもしれませんが、何かの参考になれば幸いです。 出遭ったこと 「ALT+ENT...
DirectX

DirectX Raytrace (DXR) の始め方

GDC で話題になっていた DirectX Raytracing (DXR) が触ってみることができるようになった模様です。 Microsoft が DirectX のサンプルプログラムを公開しているリポジトリで、先日の DXR のサンプルが追加されていました。 今回はこれを起動させるまでを説明します。 準備 まずはリポジトリからファイルをダウンロードするか...
DirectX

Raspberry Pi 2 で D3D12 (正式版IoT Coreにて)

以前のプレビュー版のときには失敗してしまった DirectX12 (D3D12) の動作ですが、正式版になった今はどうだろうかと調べてみました。結論からすれば、うまく動作しているようで、さらにはデバッグ情報もきちんととれそうな感じなのでお遊びにすごくよさそうな印象です。 確認 このコマンドプロンプトが使えるようになったので、以前うまく動かなかった D3D12...
DirectX

D3D12でテクスチャの挙動がしんどい

DirectX12 (D3D12) でテクスチャ生成時の挙動がドライバ依存しているようで結構しんどい気がします。巷によく掲載されているコードでは手元の RADEON HD 7750 ではうまく動作しませんでした。d3d12.dll の中で不正メモリアクセスをするような感じでエラーが発生してしまいます。 今回、 Intel HD Graphics Gen8 の...