フォト

Google AdSense


  • AdSense
無料ブログはココログ

« いよいよ明日 | トップページ | 今日のヒット作 »

2005.06.08

.xファイルにエフェクトを関連付けることを考える

そんなわけで、DXSAS 1.0 Viewerでエフェクト周りの情報を埋め込んだ*.xファイルが読めるのでその辺について、ちょっと考えてみようかと。

例としては、

C:\Program Files\Microsoft DirectX 9.0 SDK (June 2005)\Samples\Media\Dwarf
(デフォルトのままのインストール設定なら)

に保存されている【DwarfWithEffectInstance.x】なんかですとファイル内に以下のテンプレートが埋め込まれてます。

EffectInstance {
"reflect.fx";
EffectParamString {
"g_txScene";
"Weapons.dds";
}
EffectParamString {
"g_txEnvMap";
"Lobby\\LobbyCube.dds";
}
EffectParamFloats {
"Diffuse";
4;
1.000000,1.000000,1.000000,1.000000;
}
EffectParamFloats {
"Specular";
4;
1.000000,1.000000,1.000000,1.000000;
}
EffectParamFloats {
"Reflectivity";
1;
0.800000;
}
EffectParamFloats {
"Power";
1;
20.000000;
}

EffectInstancetと言うのがあって、その中にエフェクトファイル名やパラメータについての記述があります。

たとえば、

// 文字列型のパラメータ
EffectParamString {
"g_txScene"; // エフェクトファイル内の変数名(文字列型)
"Weapons.dds";     // ファイルパス
}

とか、

// 浮動小数点型パラメータ
EffectParamFloats {
"Diffuse"; // エフェクトファイル内の変数名
4; // 4次元ベクトル
1.000000,1.000000,1.000000,1.000000; // 実際の値
}

なんて感じですね。

.fxが上位で描画する.xファイルが下位という構造で管理すると言うのは逆なのですね。

.xファイルはテンプレートと言う仕組みで成り立ってるのはご存知かと思いますが、これがXMLであれば、案外とCOLLADAなんかと変わらなくなっちゃいますね(シェーダコードは埋め込まないけど)。

ただ、この仕組みは私自身も昨年のCEDEC中にMicrosoftのDirectXの開発チームの方に指摘されて知ったものなのですが、利用されてる方ってどのぐらいいるんでしょうか?

« いよいよ明日 | トップページ | 今日のヒット作 »

Programming」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2210/4468085

この記事へのトラックバック一覧です: .xファイルにエフェクトを関連付けることを考える:

« いよいよ明日 | トップページ | 今日のヒット作 »