プログラミング

DirectX

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

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

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

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

最新 VisualStudio と DirectX 9.0Ex で戦う 3Dプログラミング

はじめに DirectX 9.0c は長い間3Dプログラミングを支えてきました。 Windows XP のころから、現在の Windows10 に至るまで動作環境としては幅広いです。そして、長い間使用されたこともあって、インターネット上には多くの参考情報が残されています。 残念ながら現在の Visual Studio の環境では、当時のビルド設定ではビルドす...
DirectX

DirectX12 でポイントスプライト

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

DirectX12 フルスクリーンの罠

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

Vulkan での排他フルスクリーン

Vulkan でフルスクリーンアプリケーションを作ろうと思ったら、全画面のウィンドウを枠なしで作るという方法でした。 いわゆる仮想フルスクリーンの手法です。OpenGL でもフルスクリーンのアプリケーションは同様の手順で作るので、特に違和感はありませんでした。 ただ、DirectX9 時には専用のフルスクリーン設定がありましたし、9.0c 以降では DXGI...
プログラミング

Git LFS について(オブジェクトとロック)

以前に 「Git LFS を使ってみる」という記事を書いたのですが、現在のものと少し合わなくなってきている感じがしたので書き直しました。 Git LFS が出始めの頃と比較すると利用できる環境は格段に増えています。 Git LFS について 出始めの頃は別パッケージとしてインストールが必要でしたが、現在は Git for Windows の中に含まれています...
OpenGL

OpenGL で描画先独立なブレンディング設定を使う

OpenGL でデュアルソースブレンディングを使うと、出力先カラーバッファが1つになってしまう!という話を聞いて、「1つのカラーバッファに2色出力し、ブレンド設定でさらに演算」という場面ってどのくらいあるのだろうと疑問に思いました。(おそらくデスティネーション色と処理したいのでしょうが)。 そんな中、Multiple Render Target (MRT)で...
DirectX

RDPでGraphicsAPIは実行出来るか実験

前回、RDP で OpenGL アプリを起動させる方法を考えましたが、そもそも他のグラフィックスAPIではどうなのか、気になってきたので調べてみました。 RDP で動作するか? OpenGL : 動作しない DirectX11 : 動作する DirectX12 : 動作する Vulkan : 動作する まさかの OpenGL だけが動作しないという状況だった...
OpenGL

リモートデスクトップで OpenGL アプリを操作したい

Windows のリモートデスクトップで OpenGL を使用したアプリケーションの起動は出来ないことは、経験上知っていたのですが、OpenGL アプリを起動した状態で、リモートデスクトップ接続すると問題なくアプリが使用できる、という話を聞きました。 RDP接続後にOpenGLアプリを起動したい 事前にOpenGLアプリを起動した状態で、他の端末から RDP...