トップページ > 過去ログ > 記事閲覧
DXライブラリでのシェーダの仕様
名前:紙袋 日時: 2012/03/05 20:07

現在のDXライブラリでは制限内でシェーダが使えると思うのですが、 具体的に出来る処理と出来ない処理というのはどういった感じなんでしょうか?(HDR等のジャンルでです。) それとも制限があるだけで無理矢理することは可能なのでしょうか? あと、2Dと3Dの場合でも出来る範囲を教えていただけるとありがたいです。 よろしくお願いします。

Page: 1 |

Re: DXライブラリでのシェーダの仕様 ( No.1 )
名前:管理人 日時:2012/03/11 02:52

HDRは簡易的な計算で済ますものから物理的にある程度正しい計算をして実現するものまで幅がありますが、 簡易的なものでしたら実現可能だと思います 3Dというと頂点シェーダーのことでしょうか? 頂点シェーダーの機能としては後述の通り頂点データのフォーマットが固定で、且つ今のところ シェーダーモデル3.0の機能が使用できないので、直接 DirectX を使用する場合よりもできることは 少ないと思います 2Dというとポストエフェクトのことでしょうか? こちらは頂点シェーダーに比べればある程度できることは多いと思いますので、具体的な処理名を 言っていただければできるかどうかお答えできると思います ともあれ、プログラマブルシェーダーはできることが多いので、 何ができて何ができないのかを簡潔にお答えするのは難しいです ただ、今のDXライブラリのシェーダー機能は 「ポリゴンを使ったエフェクト表現程度+簡単なポストエフェクトができれば良し」 という感覚で実装したものなので、実際に例を挙げてできるかどうかを問われると 恐らくできないことの方が多いと思います 以下に DirectX を直接使用した場合と比べて受ける制限を挙げます ・fxファイルを直接読み込むことができない  シェーダーのプログラムファイルであるfxファイルを直接読み込むことができず、  コンパイル済みの vso ファイルか pso ファイルしか使用できないので、  fxファイル関連の機能は軒並み使用することができません  具体的には fxファイルでは複数のシェーダープログラムを一つの fxファイルに  収めておくことができたり、fxファイル内で Direct3DDevice の描画設定を  変更したりすることができるのですが、それができません ・頂点フォーマットが固定  直接 DirectX を使用する場合は頂点シェーダーで使用する頂点データに  含まれるデータ構造を決められた範囲で自由に設定することができるのですが、  DXライブラリの場合は今のところ構造体 VERTEX3DSHADER の内容に固定されています  なので VERTEX3DSHADER では必要なデータを収めきれない頂点処理はできません ・シェーダーモデル3.0以降の機能には未対応  シェーダーモデル3.0には頂点シェーダーからテクスチャにアクセスする機能や  複数の描画先に一度に描画する機能などがあるのですが、今のところDXライブラリではその機能を使えません  なのでこれらの機能が必要な処理はできません
Re: DXライブラリでのシェーダの仕様 ( No.2 )
名前:紙袋(解決) 日時:2012/03/12 12:13

つまりシェーダモデル2.0までということですね。 また、出来ることは簡易的なまででひとつのファイルに複数の処理は入れられないということですね。 おかげでDXライブラリでのシェーダの仕様について大体わかりました。 なので、これで解決にさせていただきます。

Page: 1 |