2021.02.23

Direct3D12のコマンドキューの記事を追加

Direct3D12のコマンドキューの記事を追加しておきました。

2021.02.16

DirectX SDK June 2010がダウンロードできなくなってどうしたらいいか

先日、下記のような記事でDirectX SDK June 2010やエンドユーザーランタイムがMicrosoftからダウンロードできなくなったことが書かれていました。

Where is the DirectX SDK (2021 Edition)?
https://walbourn.github.io/where-is-the-directx-sdk-2021-edition/

Microsoft announced last year that it was retiring all SHA-1 signed content from Microsoft Downloads in this blog post since the SHA-1 algorithm is no longer considered secure. The original timeline was stretched out a bit due to COVID-19, but as of January 2021 this content is no longer hosted by Microsoft servers.

In particular, this means the legacy DirectX SDK, the DirectX End-User Runtime, and the DirectX End-User Runtime Web Installer are no longer available for download from Microsoft.

要約するとSHA-1の脆弱性を抱えたインストーラの配布をやめるとのことですね。もっと前になくなるはずがCOVID-19の影響でここまで伸びてたみたいです。

DirectX SDK June 2010はもう11年前でありますが、学校教育の場では結構使われてると聞きます。ちょうど今のタイミングは就職活動で作品をいろいろと会社に送ったりしてるのかもしれないですが、上記のインストーラの配布終了で送った先で作品が動かないということがあるかもしれません。

ちょうど昨年PlayStation 5が出たばかりですが、多くの開発会社が前の世代でDirectX11や12に移行して、Windows 7のサポートが終わり、開発OSもWindows 10に移行してるところが大半かと思います。こうした環境では普段からDirectX SDK June 2010をインストールしていることがないので、送られてきたDirectX9のゲームを動かすための環境構築でひと手間かかります。

上記記事に書かれてますが、DirectX9の開発自体はVisual Studio 2017/2019ではWindows SDKに含まれていますのでまだ大丈夫です。d3d9.hやd3d9.libは入ってます。ただ、d3d9d.libはありません。もしもDebugビルドでd3d9d.libをリンクしているとd3d9d.dllがなくてやはり動かないバイナリになります。

上記記事のDeveloper Runtimesの項で書かれていますが、Windows 10ではDebugランタイムを動かすための開発者ランタイムの有効かのためにグラフィックスツールを入れますが、Windows 10のグラフィックスツールにはDirect3D9のデバッグランタイムは含まないようです。

それからもう1つ、Windows 10はD3DXのDLLがデフォルトで入っていないのでJune 2010でD3DXを使っているとD3DXのDLLがなくてやはり起動しないということも起きます。これも上記のインストーラの配布停止の影響で新たに入手が難しいです。D3DXに関してはDirect3D11で開発している人にも関係するかもしれません。

D3DXに関しては移行ガイドがあります。現在Direct3D9~Direct3D12どのバージョンでも開発するのに推奨なのはVisual StudioのWindows SDKに入ってるものやMicrosoftがGitHubで公開しているライブラリ群です。開発時間がある人はD3DXに関しては移行しておくことをお勧めします。

Living without D3DX
https://walbourn.github.io/living-without-d3dx/

そんなわけで、今の時期に配布終了とか大変なことになりそうな予感がしてますが、やはりもう10年を超えたので古すぎるものはやめましょう。

2021.02.03

C++20のmodule使ったDirect3D12デモ

C++20のmoduleは使ってみたいと思ってるけど、使ってみたDirect3D12デモが公開されていますね。

 

…ちょっと見てみます。

 

2021.01.14

次回記事の仕込み

新しいShader.jpの記事を仕込み中です。

前回の記事の続きですが、Compute Shaderの方をCompute Shader用のコマンドキューでの実行にお引越しですね。残念ながら依存関係の問題で、非同期実行ではないですけどね。あと、Nsight Graphicsでのキャプチャですが、描画が多いわけではないので残念ながらスカスカですけどね

Compute Command Queueの紫がDispatchでGraphics Command Queueの青がDrawのコマンドという感じなのはわかるかと思います。

Queues

2021.01.08

久々のShader.jpのサンプル付きの記事

久々のShader.jpのサンプル付きの記事を書きました。

いや~、技術記事ちょっと再開していきます。

2020.12.15

久々のDirect3D12記事の話

最近はあんまりC++で書く仕事少なめになってきたのではありますが、ちょっとブランクを取り戻そうとDirect3D12のTipsを準備しています。

とりあえず、Mesh Shaderとかあの辺を手を出す話の前のリハビリとして、頂点バッファをShader Resource ViewやUnordered Access ViewとしてCompute Shaderに入れて中身を読み書きするようなネタですね。

Compute Shaderでスキニングやブレンドシェイプ、パーティクルの処理などをしてキャッシュするみたいな話ですね。現在のレンダリングエンジンではシャドウパスやG-bufferパスやフォワードレンダリングパスなど複数回で描画を行いますが、パスの単位ごとに頂点処理するのは無駄があるのでキャッシュするわけですね。そうしたテクニックのための前準備という感じですね。

あと、Compute Shaderの話なのでせっかくなのでComputeのコマンドリストやコマンドキューの話もしておこうかと思っています。Async Computeとかの入り口ですね。

2020.12.09

Intelのゲーム向けC++タスクスケジューラライブラリGTS-GamesTaskSchedulerが大幅更新

IntelがGitHubで公開しているGTS-GamesTaskSchedulerが大幅に更新されているようです。

GTS-GamesTaskScheduler
https://github.com/GameTechDev/GTS-GamesTaskScheduler

このライブラリはゲーム向けのC++のライブラリで並列処理ライブラリという感じで公開されましたが、長らく更新がありませんでした。

ドキュメントなども整備されてきている(ただし、まだTBDも多いです)ので、マルチコア環境向けにゲームや自作ゲームエンジンなどにタスクスケジューラがほしかった人には好さそうですし、学ぶにもよいのではないかと思います。

ドキュメント
https://gametechdev.github.io/GTS-GamesTaskScheduler/documentation/html/developer_guide.html

CPUベンダーのライセンス的に使いやすいライブラリということで開発の再開は今後も期待したいですね。

2020.11.24

SIGGRAPH 2020で発表されたニューラルリギング論文をBlenderに組み込んだ話

https://github.com/pKrime/brignet

SIGGRAPH 2020で発表されたニューラルネットワークを使ったオートリギングの論文RigNet: Neural Rigging for Articulated Charactersを組み込んだようですね。

RigNet: Neural Rigging for Articulated Characters
https://zhan-xu.github.io/rig-net/

論文の実装はソースはGPLv3で公開されていたのでbRigNetもGPLv3ですが、出力物使う分には問題ありませんね。

2020.10.27

SIGGRAPH ASIA 2020の登録開始

オンラインイベントのSIGGRAPH ASIA 2020の登録が開始になったみたいですね

https://siggraphasia.delegateconnect.co/registrations/page/intro

Papersの情報も結構出そろってきたようですし、ちょっとチェックですね。

https://kesen.realtimerendering.com/siga2020Papers.htm

2020.10.20

Shader.jpの更新2020/10/20

2記事ほど更新しています。

より以前の記事一覧