フォト

Google AdSense


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

« 専用ハードってのが | トップページ | Mobility RADEON HD 3200搭載は誤報 »

2009.03.17

FX Composer 2.5 再入門 その2

FX Composer 2.5の再入門記事の第1回に続いて第2回。

http://masafumi.cocolog-nifty.com/masafumis_diary/2009/03/fx-composer-25-.html

長くなるので、記事は折りたたみます。

今回は、空のエフェクトを適用してグローバル変数とFX Composer 2.5のUIを連携させるネタです。

画像は全部、クリックすると大きなサイズになります。

とりあえず、例のごとくXファイルをインポートします。

Fxb002

Fxb003

Fxb004

今回は、BlenderのMonkeyにしてみます。陰影がすでについてますが、これはモデルのマテリアルがそのままインポートされてデフォルトのライティングでレンダリングされているせいですね。

エフェクトの追加をします。

Fxb005

今回もHLSL FXです。

Fxb006

予告どおりEmptyを選択します。Nameをlighting.fxに変更しています。

Fxb007

そのまま次へいきます。

Fxb008

左のAssetsのEffectsとMaterialsの項目にエフェクトとマテリアルが増えます。

エフェクトをRender Viewにドラッグ&ドロップします。するとMonkeyが真っ白になります。

Fxb010

下がシェーダコードですが、ピクセルシェーダで(1,1,1,1)を出力しているので真っ白になるわけですね。

Fxb011

今のFX Composer 2.5の状態が下記ですね。

Fxb012

コードにちょっとグローバル変数を追加してみます。範囲選択してるやつです。

ピクセルシェーダでは、その変数を出力するようにしています。

Fxb015

ピックアップしたのが下記です。

float4 ambient : COLOR
<
string UIName = "Ambient Color";
string UIWidget = "COLOR";
>;

float4形でambiet色用の変数です。

<>でくくられてる部分はアノテーションと言いまして、シェーダエフェクトの実行そのものにはなんの影響を与えません。これは、FX ComposerのUIに対して、通知するある種のキーワードです。それぞれの意味は、あとで説明します。

続いて、下記のようにlighting_Materialを選択します。

Fxb016

選択するとプロパティが以下のようになっているのがわかります。プロパティを見るとAmbient Colorという項目があるのがわかると思います。

Fxb017

このAmbient Colorは下記のようにカラーピッカーで値を変えることができます。

Fxb019

Fxb018

色を変えるとMonkeyが赤くなります。

Fxb020

話を戻しますが、アノテーションのUINameは、プロパティの項目名。UIWidgetは、プロパティ上で値を変更するUIの部品を指定するためのキーワードになります。FX ComposerではこうやってアノテーションにUI側でどのように項目を表示して、値を編集させるかと言うことを書くことができます。

<
string UIName = "Ambient Color"; // 項目名
string UIWidget = "COLOR"; // UI上の編集の方法
>;

ちなみに、UIWidgetを指定しないとfloat4を編集は下記のようなダイアログになります。

Fxb026

さらにほかのUIを使ってみるためにコードを追加してみます。

Fxb023

float fValue
<
string UIName = "Value";
string UIWidget = "Slider";
float UIMin = 0;
float UIMax = 1.0;
>;

今度は、UIWidgetが"Slider"です。これは、値の編集にスライダー使うと言うことになります。UIMinとUIMaxで最小値と最大値をしていします。ピクセルシェーダにはこの値を乗算します。

その結果、プロパティではスライダーで値が編集できるようになります。

Fxb024

まとめ
とりあえず、第2回はここまでにします。

今回は、

・FX Composer 2.5で新規のエフェクトを作る方法
・グローバル変数の追加
・プロパティを使ってみる

と言った感じです。プロパティとUIをうまいこと使いこなすことができれば、シェーダプログラマとアーティストで共同して作業する際にアーティスト側にコードをいじらせずにプロパティをいじるだけで見た目を変えたり調整したりするようなことをFX Composerでさせることができます。

このときには、メニューの【View】の【Layout】を【Artist】にしてあげましょう。そうすると下記のようなレイアウトになり。アーティストは右側のプロパティにアクセスすれば色を変えたりとかできますね。

Fxb025


« 専用ハードってのが | トップページ | Mobility RADEON HD 3200搭載は誤報 »

Programming」カテゴリの記事

画像付き」カテゴリの記事

コメント

コメントを書く

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

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

« 専用ハードってのが | トップページ | Mobility RADEON HD 3200搭載は誤報 »