DirectX12

DirectX

DirectXShaderCompiler 使用時のシェーダーリフレクション

シェーダーコードのリフレクションを皆さんは使用していますか?DirectXで長らく使われてきた D3DCompiler (fxc) を用いて作られたシェーダーバイナリについては、 D3DReflect 関数を用いてシェーダーリフレクションにアクセス出来ます。 近年は徐々に fxc から dxc へ、DirectX Shader Compiler を使用する場...
DirectX

Vulkan でも IDXGISwapChain を使う

今回の記事は実験的なネタです。 DirectX では描画結果を画面に反映するのに IDXGISwapChain を使用します。一方 Vulkan では VkSwapchainKHR を生成して描画結果を画面に反映します。それぞれのAPIがそれぞれの SwapChain を使うように出来ているのですが、ここで敢えて Vulkan の描画結果を DirectXの...
DirectX

DXRを始めてみました

先日 NVIDIA の DXR Tutorial を試してみて、DXR界隈に第1歩を踏み出しました。あれからもうちょっと理解が進んだので、そのメモというか記録です。ようやくテクスチャを使ってみるところに到達です。 あれからどうしたか チュートリアルをやった結果、便利なヘルパー関数を使わずにもう1度最初から始めてみました。また1つずつ積み上げて影が落ちている状...
DirectX

NVIDIAが紹介する DXRのチュートリアルをやってみた

NVIDIA が DirectX Raytracing のチュートリアルを公開しています。遅ればせながら、このチュートリアルをやってみたのでその紹介です。以下のアニメGIF画像はラスタライズとレイトレーシングとの描画モードを切り替えている図です。三角形3枚のほうが DXR による描画となっています。 NVIDIA DXRチュートリアル NVIDIA の DX...
DirectX

Presentだけを実行するとメモリが増えていく

DirectX12 のアプリケーション開発において、ほとんど何もしていないのに使用メモリがモリモリ増えていく事案に出遭いました。何もせずに、 Present メソッドを呼び出しているだけですが、使用メモリが増えていきます。 自分の環境は以下に示す状態となります。 Windows10 x64 1909 バージョンVisual Studio 2019Window...
DirectX

D3D11On12 を試す (2)

DirectX12 の機能の1つで、 D3D11On12 のお試し第2回です。 前回のブログ記事でピンと来ている人もいるかもしれません。DirectX12 の場合でも今までと同様で、文字列を描画するのに手間がかかります。 DirectXTKなど他のオープンソースライブラリの力を借りれば、比較的簡単にパフォーマンスと文字列描画を自分のアプリケーションに取り込む...
DirectX

D3D11On12 を試す (1)

DirectX12 の機能の1つで、 D3D11On12 を触り始めました。DirectX12 の中ではおそらくマイナー側な機能で注目されないと思いますが、そういうものこそ「すらりん日記」には相応しいと感じてますので、紹介します。 D3D11On12 とは D3D11On12 とは、 DirectX11 の API セットを DirectX12 の上に実装し...
DirectX

DirectX12 の書籍 「DirectX 12の魔道書」

自分も同人誌で DirectX12 や Vulkan のプログラミングの書籍を作っていますが、とうとう商業誌として DirectX12 の書籍が登場するようです。600ページを越えるかなりのボリューム感となっていますが、 DirectX12 をしっかり説明しつつ入門となるとこのくらいになってしまうのかもしれないですね。 内容としては、MMDモデルを描画&踊る...
DirectX

DirectX12 でテッセレーション

DirectX12 でのテッセレーションを確認してみています。テッセレーション自体は DirectX11 から使えるようになっているものですが、あまり事例を見かけないかなと思います。頂点シェーダーやピクセルシェーダーのように必須のものではありませんし、色々と制御が難しかったりしています。今回はテッセレーションの基本的な部分について、自分のメモです。 テッセレ...
DirectX

DirectX12 でシングルパスキューブマップ描画

DirectX12 で、ジオメトリシェーダーを用いてシングルパスでキューブマップ6面を描画を行う手順を確認しました。以前に各キューブマップ面毎に描画する方法は紹介しました。ジオメトリシェーダーを使うと1回の描画で6面へ描画ができます。 レンダーターゲットビュー・デプスステンシルビューの準備 描画先とするために、レンダーターゲットビューとデプスステンシルビュー...