Difference between revisions of "User:Caron/CTTutorial Japanese/Shader"

From Custom Mario Kart
Jump to navigation Jump to search
Line 1: Line 1:
mdl0/Shaders/Stageに関する情報です。テクスチャをゲーム上にどのようにフィルタをかけて出力させるかの設定を行います。表記は[[BrawlCrate]]基準です。
+
mdl0/Shaders/Stageに関する情報です。テクスチャや頂点カラーなど、様々なカラー情報をどのように組み合わせてゲーム上に出力させるかの設定をこの部分で行います。表記は[[BrawlCrate]]基準です。
<br>シェーダに関するより詳細な解説は[[Wii_Graphics_Code/Blitting_Processor#Shader_operations|こちら]]を参照してください。
+
<br>このページでは説明が難しい所は少々省いて載せています。より詳細な解説は[[Wii_Graphics_Code/Blitting_Processor#Shader_operations|こちら]]を参照してください。
  
 
==TEV Fragment Sources==
 
==TEV Fragment Sources==

Revision as of 09:32, 19 February 2020

mdl0/Shaders/Stageに関する情報です。テクスチャや頂点カラーなど、様々なカラー情報をどのように組み合わせてゲーム上に出力させるかの設定をこの部分で行います。表記はBrawlCrate基準です。
このページでは説明が難しい所は少々省いて載せています。より詳細な解説はこちらを参照してください。

TEV Fragment Sources

テクスチャの有効/無効、取得するラスタカラー先など、基礎の部分になります。

表記 説明
Texture Enabled テクスチャを使用するかしないかを選択します。TrueでMapID先のテクスチャを使用し、Falseではテクスチャを使用しません。
Texture Map ID 使用するテクスチャIDを選択します。
Texture Coordinates ID コーディネートするテクスチャのID(UVマップID)を選択します。基本的にマップIDと同じものをを使用します。
Texture Swap Selection テクスチャカラー、およびアルファの値をSwap先の順序に変更します。例えば(R,G,B,A)→(B,R.G.A)にしたりすることが可能です。普通はSwap0(RGBA->RGBA)で問題ありません。
Raster Color どのラスタカラーを使用するか選択します。。
表記 説明
LightChannel0 拡張反射光や頂点カラーなどを使用します。頂点カラーを利用したい場合はデフォルトのステージではこれが使用されています。マテリアルの同名の箇所で詳細な編集が可能です。
LightChannel1 異なる設定のライトチャネルの設定を使いたい場合は、こちらを使ってください。
BumpAlpha バンプマップに対応したラスタカラーを使用します。使用するカラー元がどこかは不明です。
NormalizedBumpAlpha 上のBumpAlphaを閉区間[0,1]で正規化します。
Zero ラスタカラーを使用しません。黒+透明(0,0,0,0)の扱いになります。
Raster Swap Selection ラスタのカラー、およびアルファの値をSwap先の順序に置き換えます。普通はSwap0(RGBA->RGBA)で問題ありません

TEV Color Output

テクスチャのRGB(赤、緑、青)成分をどのように出力するかを設定します。

表記 説明
Output Function テクスチャの単位ピクセル毎にこの方程式を用いてゲーム上に出力を行います。区間は0~1になりますが、ゲーム上では255倍された値が表示されます。ほとんどのシェーダにおいてはOperationがAdd、ClampがTrueとして、
Output=clamp[d+{(1-c)*a+c*b+バイアス}*倍数] (0≦Output≦1)
が用いられています。
Constant Selection SelectionA~Dの中で"ConstantColorSelection"を使用している場合、使用する定数を選びます。なければ何も触らなくて大丈夫です。
  • Constantx_y(x,y:数値。ただしx≦y)…x/y倍の定数を使用します。例えばConstant3_4は3/4=0.750を定数として使用します。値が小さいほど暗くなりますが、(1-c)においては逆に明るくなっていきます。
  • Constantz_UUU(z:MaterialのConstant ColorのID、UUU:RGB,RRR,GGG,BBBなど)…ConstantColorブロックのRGB値に255で割った値を定数として用います。上よりも細かい値を指定でき、また色に応じて値を分けることが可能です。RRRやGGG、BBBはそのカラーブロックの一つの値のみ利用します。
Selection A Outputの方程式のaに相当する部分です。
表記 説明
OutputColor 直前に出力したOutputColorの値(=上階層のステージの出力値)を使用します。Stage2以降で使用可能で、Stage1においてDestinationがOutputColorでないか、またはStage1で使用した場合、値はZeroと同じに扱いになります。
OutputAlpha 直前に出力したOutputAlphaの値(=上階層のステージの出力値)を使用します。Stage2以降で使用可能で、Stage1においてDestinationがOutputAlphaでないか、またはStage1で使用した場合、値はZeroと同じに扱いになります。
Color0~Color2 OutputColorと基本的に同じですが、こちらは初期値をMaterialのShade Color Blockで指定できるため、Stage1で使用ができます。Color1およびColor2はオブジェクトやキャラクターにおいてBreffのシェーダのDestinationを呼びこむときにも利用されます。
Alpha0~Alpha2 OutputAlphaと基本的に同じですが、こちらは初期値をMaterialのShade Color Blockで指定できるため、Stage1で使用ができます。Alpha1およびAlpha2はオブジェクトやキャラクターにおいてBreffのシェーダのDestinationを呼びこむときにも利用されます。
TextureColor テクスチャの色をそのまま利用します。テクスチャを利用している限り、Shaderのステージにおけるいずれかのa~dの中には必ず1つ入れる必要があります。
TextureAalpha テクスチャの透明部分をそのまま利用します。
RasterColor ラスタカラーを使用します(TEV Fragment Sources参照)。これと使用すると頂点カラーが有効になります。
RasterAlpha ラスタアルファを使用します(TEV Fragment Sources参照)。これを使用すると頂点アルファが有効になります。
One 白色(=1)を使用します。
Half 灰色+半透明(=0.5)を使用します。
ConstantColorSelection Constant Selectionの値を使用します。
Zero 黒色+透明(=0)を使用します。
Selection B Outputの方程式のbに相当する部分です。第三項でcとともに使用します。内容はSelectionAを参照してください。
Selection C Outputの方程式のcに相当する部分です。第二項ではaと、第三項ではbとともに使用しますが、前者は反転値となります。内容はSelectionAを参照してください。
Selection D Outputの方程式のdに相当する部分です。第一項で独立して使用します。内容はSelectionAを参照してください。
Bias 第2項以降に値の補正をします。
Operation Outputの出力方式を変更します。AddとSubtract以外はほとんど使われていません。
表記 説明
Add dに対し第二項以降は加算を行います。
Subtract dに対し第二項以降は減算を行います。dがzeroの場合、テクスチャが消えます。
CompR8Greater aのR値とbのR値を比較し、R(a)>R(b)ならcを、そうでなければ0をdに加算します。
CompR8Equal aのR値とbのR値を比較し、R(a)=R(b)ならcを、そうでなければ0をdに加算します。
CompGR16Greater aのRとG、とbのRとG値を比較します。優先度はG->Rで、Gが等しければRの順序で比較を行います。
CompGR16Equal aのRとG、とbのRとG値を比較します。優先度はG->Rで、Gが異なればRの順序で比較を行います。
CompGBR24Greater aのRGBとbのRGB値を比較します。優先度はB->G->Rで、Bが等しければGへ、Gが等しければRの順序で比較を行います。
CompGBR24Equal aのRGBとbのRGB値を比較し、優先度はB->G->Rで、Bが異なればGへ、Gが異なればRの順序で比較を行います。
CompRBR8Greater aのRGB値とbのRGBの比較をします。CompGBR24Greaterと違って、値を比較して結果に応じて値を決定します。
CompRBR8Equal aのRGB値とbのRGBの比較をします。CompGBR24Equalと違って、値を比較して結果に応じて値を決定します。
Clamp 出力パラメータを閉区間[0,1]で正規化します。出力が0以下や1以上になることを防ぐためにあるので、基本Trueをおすすめします。
Scale 出力パラメータに倍率を掛けます。MultipleByXのXが大きいほどテクスチャが乗算されていきます(=明るくなる)。逆にDivideBy2は除算を行います。
Destination 出力パラメータの保存先を参照します。Color1及びColor2はBreffのStageで使用される設定のため、OutputColorのままで問題ありません。

TEV Alpha Output

テクスチャのA(透明)成分をどのように出力するかを設定します。基本的にTEV Color Outputと情報は同じです。

TEV indirect Texturing

ディスプレイスメントマップおよびバンプマップを使う場合はこの部分の設定が必要になります。

表記 説明
TexStage IndirectテクスチャのステージIDを指定します。Shader/TEV Indirect Texture Sourcesで有効にしたIDを選択してください。
TexFormat Indirectテクスチャの座標フォーマットを指定します。デフォルトのF_8bitが最も細かいフォーマットになるので、基本的に触らなくて大丈夫です。
Bias Indirectテクスチャにバイアスをかけます。STUで全方面へ適用されるので、Indirectテクスチャを使うステージではSTUを選択してください。
Alpha バンプアルファにバイアスをかけます。基本的に触らなくて大丈夫です。
Matrix Indirectテクスチャのマトリックス(行列)先を指定します。
SWrap S方向への繰り返し処理方法を指定します。基本的に触らなくて大丈夫です。
TWrap T方向への繰り返し処理方法を指定します。基本的に触らなくて大丈夫です。
UsePrevStage 上層のステージを使用するかしないかを選択します。基本的に触らなくて大丈夫です。
UnmodifiedLOD 使っていないLOD(プレイヤーの視点に応じた描写方法)をロードするかしないかを選択します。基本的に触らなくて大丈夫です。

とりあえず使いたい場合はBias→STU、Matrix→Matrix0と変更してください。

設定例

ここを参照