Amazon 初売り

« メンドイからプロジェクトテンプレートを作ろう | トップページ | GeoGebra 数学アプリ »

2019.06.25

Direct3Dのバージョン切り替えれるようにしてみた

| |コメント (0)

 このエントリーをはてなブックマークに追加

先日の記事
2Dゲーム用素材向けに動的ライティング用ノーマルマップを生成出来るソフト「Laigter」を使ってみた
で書いたように
「Laigter」を使うとノーマルマップが生成できるため
ゲーム画面の見栄えが良くなりそうだと思った。

ノーマルマップを使ったライティングをする場合、
DXライブラリの3D関連関数を使う必要がありそう。

そこで、調査したところ、
DirectX 11でサンプルになりそうな下記の記事が見つかった。

ノーマルマップの3Dポリゴン

現在の初音ミク冒険記は、DirectX 9を使用しているが
Effekseerも歪み機能以外は、DirectX 11に対応しているし
DirectX 11は、Windows 7から標準だと分かったので
DirectX 11にしても良いのではないかと思った。

初音ミク冒険記でも歪み機能のサンプルは試したことがある。
でも、具体的に歪み機能を使うエフェクトを自作してない。

このことをツイートしたところ、
Effekseerのコミッターさんから
興味があったらDirectX 11の歪み機能について
調べて欲しいという話があった。

歪み機能のDirectX 9とDirectX 11の違いを確認する場合、
ソース内で直接バージョンを指定すると
毎回ビルドしないとイケなくなるので
DirectXのバージョン切り替えできる仕組みにした方が良さそう。

また、Windows 7でもDirectX 12が使えるし、
Windows10からはDirectX 12が標準で使えるので、
そのうちDXライブラリがDX12対応になった時にも
DirectXのバージョン切り替えの仕組みがあれば
対応しやすいんじゃないかと思う。

切り替えは、
デバッグファイル設定ツールの「詳細設定1」から行えるようにする。

2019/06/23現在、DXライブラリは、
DirectX 9/9EX/11に対応しているので
それを切り替えれるようにする。

Direct3d

もともと初音ミク冒険記でEffeksserを使うときは、下記の記述をしていた。

iRet = SetUseDirect3D9Ex(FALSE);

当時のEffekseerForDXLibのサンプルにあった記述だ。

また、Prominence3D for DirectX9のサンプルでも、
この記述があるようなので、
Prominenceのマスク機能を使うとしたら
この記述は、残しておいても良いかなと思っている。

なお、Direct3Dのバージョンを指定する際は、
SetUseDirect3DVersionを使う。

SetUseDirect3DVersionとSetUseDirect3D9Exについては
過去にDXライブラリの掲示板で
ゲーム以外のウィンドウでもWindowsキーが効かなくなる
のスレッドで質問したことがある。

この時、SetUseDirect3DVersionができた経緯と
SetUseDirect3D9Ex( FALSE ) ; は
SetUseDirect3DVersion( DX_DIRECT3D_9 ) ; に相当する
ということを教えてもらっている。

なので、デバッグファイル設定ツールでDirect3D 11を指定した時に
SetUseDirect3D9Ex( FALSE ) ; が動かないようにした。

Direct3Dのバージョンによる違い変化が一番分かりやい
ボカロタウン入口の噴水で比較してみる。

Direct3d9

Direct3d11

Direct3D 9の方は、パーティクルがドットであることが目立つが
Direct3D 11の方が、ドット感が緩和され見栄えが良くなっている。

どのDirect3Dバージョンで起動しているか分かるように
デバッグ用コンソールにはDirect3Dのバージョンや
プログラマブルシェーダーのバージョンが出力されるようにした。

で、肝心の歪みエフェクトについて調べようとしたところ
別の問題が出てきた。
その問題については、次の記事に書くことにする。


 このエントリーをはてなブックマークに追加

| |コメント (0)

このエントリーへのリンク

このエントリーのリンクを入れるHTML:

コメント

このブログの新着コメントをRSSリーダに登録する為のxml




←名前とメールアドレスは必須です。
URLも記入すれば、URLのみが公開されます。
メールアドレスのみですと、メールアドレスが公開されてしまいますので、御注意ください。

↓コメント本文では、「a href」「b」「i」「br/」「p」「strong」「em」「ul」「ol」「li」「blockquote」「pre」のタグが使えます。絵文字をクリックすると、本文にタグを挿入できます。