DirectX一覧

VisualStudio の HLSL テンプレートがおかしい その2

以前に、 VisualStudio の HLSL テンプレートがおかしい として、修正したシェーダー用のプロジェクトテンプレートですが、 Visual Studio 2017 の更新をしたら、また妙な状況になってしまったようです。
もしかすると、先の手作業の修正が引き金で新規にインストールした場合には、おかしな構造ながらも正常に動くのかもしれません。

続きを読む


Visual Studio Graphics Debugger の終了

Windows 10 October 2018 Update (1809) で、 Visual Studio 2017 の Graphics Debugger が正常に動かなくなりました。最近は Vulkan を勉強していることが多く、 VS の Graphics Debugger は使っていませんでした。再び D3D12 の勉強を再開した今日、この問題を発見しました。

最初は、今の D3D12 のために、色々と新しいインターフェースを使ったのが問題で失敗したのだろうと考えていたのですが、どうやらそうではないようです。
仕様として 1809 バージョンの上では VS 付属 Graphics Debugger は使えないということになったようです。

続きを読む


VisualStudio の HLSL テンプレートがおかしい

15.8.x のどこかのバージョンから、以下のようにシェーダーの作成の項目が減ってしまいました。
(自分の記憶では、15.8.1 の時点では大丈夫でした)。 この画面は 15.8.5 のものです。
本来ならば、ここに頂点シェーダーやピクセルシェーダー、ハルシェーダーといった項目も出現していなければなりません。

この問題を解決する方法がわかったので、これについて説明します。
なお、Professional 版、 Community 版ともに同じ問題を抱えているようです。

続きを読む


NVIDIA Nsight Graphics を試す

NVIDIA Nsight といえば、 Visual Studio に統合されて、グラフィックス API 使用時のデバッグのお供として定番のものでした。これのスタンドアロン版、 Visual Studio に統合されないで単体で使用できるアプリケーションとして、「NVIDIA Nsight Graphics」が公開になりました。

今のところ、専用のドライバが必要になるみたいですが、ちょっと動作を確認してみたいと思います。

※ 少し前に Windows10 のドライバをダウンロードすると正常なものが取得できませんでしたが、現在は正常になっているようです

入手・セットアップ

現時点において NVIDIA の以下のページから入手が可能です。

このページからダウンロードページへのリンクがあります。ダウンロードには NVIDIA Developer のアカウントが必要になるようなので、持っていない場合には作成することが必要になります。そして、 Nshight Graphics 本体と、各自の環境に合わせたドライバをダウンロードします。

今のところ、 NVIDIA Geforce 600 番以降であれば対応しているようです。また 64 ビット Windows 7 or 10 の環境のみサポートしているようです。Windows 8系や 32 ビットあたりを打ち切っている辺り潔いです。デバッグ時にこれらの環境を使っていることは割と少ないと思いますが、ドライバのダウンロードの箇所には Win8 の文字があって対応していそうにも見えますが、注意が必要です。
続きを読む


DirectX11 でマルチフルスクリーン その3

DirectX11 でマルチディスプレイ環境で全てのディスプレイでフルスクリーンモードとしたいのに SetFullscreenState が失敗してしまう件の続報です。
この症状は、 Windows10 Creators Update 適用環境でも発生します。おそらく RTM 版から挙動は変わっていないのでは、と思います。詳しくは、前回までの記事を参照してもらうとして、今回は「どうしてもフルスクリーンモードを使いたいんだ」ということで、1つの提案を出してみたいと思います。

続きを読む


HLSL pow 関数の怪

pow 関数の挙動が昔と今で変わった!という話を聞いたので調査することにしました。

今回はスペキュラーの計算で使用している pow 関数の計算が妙なことになっているとのことだったので同じようにスペキュラの計算を行ってみることにします。なおインターネットで調べてみると、同じような症状に出遭っているような文面を見かけることができました。

傾き指向プログラミング / Direct3D 11のカリング設定
こちらの方では、「Specularの計算中powを使うのですが、これの結果がやたらとマイナスの値になるため、最終的に合算した色が真っ黒になるようです。」 と記述しています。
続きを読む


Draco を C++ と DirectX11 で触ってみる 後編

前回は draco のビルドと、サンプルのモデルデータをとりあえず読み込んで描画を行いました。今回は、モデルデータをコンバートする部分と、別のモデルデータの読み込みについて確認したいと思います。

コンバート

現時点において Draco をビルドすると ply, obj ファイルから drc ファイルを生成するコンバーターが付属しています。

使い方は以下のようになっていました。

MMDのモデルから変換する

MMDのモデル形式(PMD,PMX)から obj 形式を経由して変換してみました。PMDEditor で、 obj 形式でエクスポートすることが出来るようになっており、出力したファイルを draco_encoder に入力します.

続きを読む


Draco を C++ と DirectX11 で触ってみる 前編

Google の Draco が公開されています。これは 3D データ圧縮ライブラリでして、 Zip よりも効率よく圧縮ができるというのが特徴です。公開されたのは2017年1月ごろの話なので、ずいぶんと出遅れている状態ですがちょっと触ってみました。

効果的に使える場面は WebGL の環境だと思いますが、あえてデスクトップPC の DirectX11 でデータを描画するといったことを目標にします。前編では Draco の準備と初めてのモデルデータの読み込み、を行います。なお、 DirectX11 のプログラミングにおいて3角形は描画できるというという状態までは仕上がっているものとします。

続きを読む


DwmGetDxSharedSurface を使ってみた

Windows の隠し API である DwmGetDxSharedSurface を使ってみました。
これは Windows7 以降で存在するようで、無事に Windows10 の環境でも使えました。
そのまま素直に使おうとするといくつか課題はありますが、面白い機能だと思ったので紹介することにしました。なお Undocumented API の1つなので、ご利用は自己責任で。

これは何?

指定されたウィンドウの画像をキャプチャすることが出来る API です。ウィンドウが他のウィンドウで隠されていても内容をキャプチャすることが出来ます。

続きを読む