DirectX11

OpenGL

EXT_external_objects の実験

OpenGL 4.6 の発表の中で、各Graphics API との Interop の話がありました。 ここで、EXT_external_objects 拡張 (スライドでは EXT_memory_object となっていましたが) が、面白そうだったので触ってみました。 ただしこの内容は OpenGL 4.6 に含まれるものではなく、追加という位置付けと...
DirectX

Vulkan へ DirectX11 テクスチャをインポート

世の中の多くの Windows 環境で安定して使えるグラフィックス API は DirectX11 や OpenGL といったところだと思います。 Vulkan API は新しい API のため、既存のライブラリやフレームワークではまだサポートされていなかったりします。そのような状況のためか、 NIVIDA の Vulkan Extension では、 Vu...
Hyper-V

クライアント Hyper-V でも DirectX/OpenGL

先日は Windows Server 2016 で試していましたが、実は Windows10 Pro に含まれている クライアント Hyper-V でも DirectX11, OpenGL 4.4 が使えるとの情報を見たので実験してみました。
Hyper-V

Windows Server 2016 で RemoteFX GPU の実験

Windows Server 2016 で個人的に魅力的に感じている RemoteFX 仮想 GPU について実験してみました。 Windows Server 2016側の準備 Hyper-V の役割だけでなく、リモートデスクトップ仮想化ホスト の役割もインストールして RemoteFX を使えるようにします。 今回の環境では Intel HD Graphi...
DirectX

BC7の圧縮ノイズについて調べてみた

優秀だという BC7 圧縮の品質がどんなものか調べてみました。 そのためにはそこそこの品質以上の画像データが必要だったので友人に協力してもらい画像を使わせてもらっています。 この場を借りてお礼申し上げます。 BC7への圧縮については Codeplex からダウンロードできる Microsoft の TexConv を使用しています。この最高品質となる CPU...
DirectX

DirectX11の場合のシステムメモリとVRAM消費について

今までは OpenGL の場合を調査してきました。今回は DirectX11の場合を調べてみようと思います。ドライバが一緒ならきっと同じ傾向を示すんじゃないかなと予想して実験をスタートです。 実験 DirectX11のプログラムとして、100フレームごとに頂点バッファ 32MB を確保し、次フレーム以降はこのデータを使って描画するプログラムを作成しました。 ...
DirectX

DirectX11で複数ウィンドウを使ってみる

最近Mach-Oの調査ばっかりやっているので、DirectX11とか触ってるとほっとします。 昨今では2つのディスプレイが繋がっていることも珍しくないと思います。 それぞれに対してDirectXアプリケーションのフルスクリーンやりたいとか、独立した複数ウィンドウでDirectXの描画やりたいとかそういうときにどうしたらよいかを実験してみました。 結論から言え...
DirectX

DirectX11でMSAA

DirectX11でMSAA(Multi Sampling Antialias)を試してみました。 検索でよく見つかるのが、プライマリのバッファをMSAA使用する例はよくみかけるのですが、テクスチャレンダリングする場合においてMSAA有効でレンダリングするというサンプルを見つけることはできませんでした。 そんなに難しい話ではないのですが、サンプルプログラムが...
DirectX

Draw Indirect 系を調べてみた (OpenGL vs DirectX)

OpenGL では Draw Indirect 系が充実しているとの情報があったので、DirectXとどのように違うのかを調べてみました。 DirectX 11 では、 DrawInstancedIndirect(), DrawIndexedInstancedIndirect() の2つの関数が DrawIndirect系として使用可能です。DirectX1...
DirectX

DirectX11で旧シェーダーコード(HLSL)を使う

DirectX11(DX11) は DirectX9(DX9) に対応したハードでも一応動かすことが出来ます。このとき、DX9 にのみ対応ハードで動かす場合、DX11 の機能は当然使えません。シェーダーに関しても同様で、頂点シェーダー、ピクセルシェーダーのみを使用することになります。 fxcや関連するドキュメントをみると、そういった DX9 ハード用のシェー...