More Related Content
More from fumoto kazuhiro
More from fumoto kazuhiro (12)
Dccツール別リアルタイムシェーダの環境
- 1. デザイナーショック外伝
DCCツール別
リアルタイムシェーダの環境
-RTShader共有化への思索-
発表者:麓 一博
株式会社セガ テクニカルアーティスト
<Fumoto_Kazuhiro@sega.co.jp>
- 2. セッション概要
1. はじめに
2. 何故DCCでRTシェーダを確認する必要があるのか?
3. サポートしているシェーダ言語
4. RTシェーダ適用方法の違い
5. RTシェーダ記述内容の違い
6. シェーダファイル共有化
7. まとめ
- 11. Softimage
• Standard Annotations and Semantics (SAS)
Sofimage内のオブジェクトをバインドするための標準セ
マンティックパラメータがあるのが特徴
float3 dirlight0
<
bool SasUiVisible = false;
string SasBindAddress = "sas.directionallight[0].direction";
>;
float3 dirlight0color
<
bool SasUiVisible = false;
string SasBindAddress = "sas.directionallight[0].color";
>;
- 12. MAYA
• 型、変数名の後の:アノテーションが意味を持つ
float3 dirlight0 : Direction
<
string UIName = "Lamp Position";
string Object = "DirectionalLight";
string Space = "World";
> = {0.0, 0.0, 0.0};
float4 dirlight0color : COLOR
<
string UIName = "Light Color";
> = { 1.0f, 1.0f, 1.0f, 1.0f, };
- 13. Max
• アノテーションのstring float3 dirlight0 : Direction
<
Object =””ライトタイプ string UIName = "Light Direction";
string Object = "TargetLight";
を設定する。 string Space = "World";
string UIWidget = "NONE";
int RefID = 0;
> = {0.0, 0.0, 0.0};
int UV01<
• UVに名前がないので string UIName = "texcoord0";
string UIType = "intSpinner";
TEXCOORDに渡すのにID int UIMin = 1;
int UIMax = 99;
を指定するUIを作成する > = 1;
int texcoord0 : Texcoord
必要がある等 <
int Texcoord = 0;
int MapChannel = 1;
string UIWidget = "None";
>;
- 17. Macroで仕分けた例
#if defined (_3DSMAX_)
// max用ライト
float3 dirlight0 : Direction
<
string UIName = "Light Direction";
string Object = "TargetLight";
string Space = "World";
string UIWidget = "NONE";
int RefID = 0;
> = {0.0, 0.0, 0.0};
float4 dirlight0color : LightColor
<
小さくて読めない!
string UIName = "Light Color";
int LightRef = 0;
string UIWidget = "NONE";
> = { 0.0f, 0.0f, 0.0f, 0.0f, };
#elif defined (XSI)
// Softimage用ライトSAS
float3 dirlight0
<
bool SasUiVisible = false;
string SasBindAddress = "sas.directionallight[0].direction";
>;
float3 dirlight0color
<
bool SasUiVisible = false;
string SasBindAddress = "sas.directionallight[0].color";
>;
#else
// maya用ライト
float3 dirlight0 : Direction
<
string UIName = "Lamp Position";
string Object = "DirectionalLight";
string Space = "World";
> = {0.0, 0.0, 0.0};
float4 dirlight0color : COLOR
<
string UIName = "Light Color";
> = { 1.0f, 1.0f, 1.0f, 1.0f, };
#endif
- 18. Macroで仕分けた例1
#if defined (_3DSMAX_)
// max用ライト
float3 dirlight0 : Direction
<
string UIName = "Light Direction";
string Object = "TargetLight";
string Space = "World";
string UIWidget = "NONE";
int RefID = 0;
> = {0.0, 0.0, 0.0};
float4 dirlight0color : LightColor
<
string UIName = "Light Color";
int LightRef = 0;
string UIWidget = "NONE";
> = { 0.0f, 0.0f, 0.0f, 0.0f, };
- 19. Macroで仕分けた例2
#elif defined (XSI)
// Softimage用ライトSAS
float3 dirlight0
<
bool SasUiVisible = false;
string SasBindAddress = "sas.directionallight[0].direction";
>;
float3 dirlight0color
<
bool SasUiVisible = false;
string SasBindAddress = "sas.directionallight[0].color";
>;
- 20. Macroで仕分けた例3
#else
// maya用ライト
float3 dirlight0 : Direction
<
string UIName = "Lamp Position";
string Object = "DirectionalLight";
string Space = "World";
> = {0.0, 0.0, 0.0};
float4 dirlight0color : COLOR
<
string UIName = "Light Color";
> = { 1.0f, 1.0f, 1.0f, 1.0f, };
#endif