User:Caron/CTTutorial Japanese/Shader

From Custom Mario Kart
Jump to navigation Jump to search

mdl0/Shaders/Stageに関する情報です。テクスチャをどのようにゲーム上に出力させるかの設定を行います。シェーダに関してはどのゲームにおいても複雑なため、他の事よりもシステムの理解に時間を要します(画像処理の分野を学んでいると理解が早くなります)。
尚、説明が間違っているところもあるかもしれません。

TEV Fragment Sources

ColorSelection(A,B,C,D)におけるAの設定です。

表記 説明
Texture Enabled テクスチャを使用するか否かを選択します。TrueでMapID先のテクスチャを使用し、Falseではテクスチャを使用しません
Texture Map ID 使用するテクスチャIDを選択します。
Texture Coordinates ID コーディネートするテクスチャのID(UVマップID)を選択します。基本的にマップIDと同じものをを使用します
Texture Swap Selection 不明。ShadersのSwapModeTableから使用するものを選びますが、普通はSwap0で問題ありません
Raster Color どのラスタカラーを使用するか選択します。
  • LightChannel0…デフォルトのステージではこれを使用します。マテリアルの同名の設定で詳細の編集が可能です。BrawlBoxでmdl0作った時にやけにテクスチャが明るいと思ったらこのLightChannelが原因なので、マテリアルの部分のMaterialColorの部分の明るさを調整すると直ります。
  • LightChannel1…異なるライトチャネルを使う場合はこちらを選択します。
  • BumpAlpha…不明
  • NormalizedBumpAlpha…不明(Wiiは法線マップ非対応)。
  • Zero…ラスタカラーを使用しません。デフォルトで使うとテクスチャが真っ黒になります。
Raster Swap Selection 不明。Swap0のままで問題ありません。

TEV Color Output

ColorSelection(A,B,C,D)におけるBの設定です。テクスチャのRGB成分をどのような方法で出力させるかを設定します。アルファチャンネルはCで設定します。

表記 説明
Output Function テクスチャの単位ピクセル毎にこの方程式を適用してゲーム上に出力を行います。基本的にOperationがAdd、ClampがTrueとして、
Output=clamp[d+{(1-c)*a+c*b+バイアス}*倍数]
が用いられます。SelectionA~Dはこの方程式に基づいて説明していきます。
Constant Selection 出力の際にどの定数を用いるかを選びます
  • Constantx_y(x,y:数値。ただしx≦y)…x/y倍の定数を使用します。例えばConstant3_4は3/4≒0.750を定数として使用します。
  • Constantz_UUU(z:マテリアルセクションにて使用するConstant ColorのID、UUU:RGB,RRR,GGG,BBBなど)…ConstantColorブロックのRGB値を定数として用います。RRRやGGG、BBBはそのカラーブロックの一つの値のみ利用します。
Selection A Outputの方程式のaに相当する部分です。
  • OutputColor…直前に出力したカラー値を使用します。初期ロードにおいては黒色です。
  • OutputAlpha…直前に出力したアルファ値を使用します。初期ロードにおいては透明です。
  • Color0~Color2…マテリアルのShade Color BlockのRGB値を使用します。
  • Alpha0~Alpha2…マテリアルのShader Color Blockのアルファ値を使用します。
  • TextureColor…テクスチャの色をそのまま利用します。テクスチャを利用している限り、Outputの方程式におけるa~dの中には必ず1つ入れる必要があります。
  • TextureAalpha…テクスチャの透明部分をそのまま利用します。
  • RasterColor…ラスタカラーを使用します(TEV Fragment Sources参照)。
  • RasterAlpha…ラスタカラーのアルファ値を使用します(TEV Fragment Sources参照)。
  • One…白色(255,255,255,255)を使用します。
  • Half…灰色+半透明(128,128,128,128)を使用します。
  • ConstantColorSelection…Shader Constant Color Blockの値を使用します。
  • Zero…黒色+透明(0,0,0,0)を使用します。要は0なので、これを利用している項は無視されます。
Selection B Outputの方程式のbに相当する部分です。第三項で使用します。内容はSelectionAを参照してください。
Selection C Outputの方程式のcに相当する部分です。第二項と第三項で使用しますが、前者は反転値となります。内容はSelectionAを参照してください。
Selection D Outputの方程式のdに相当する部分です。第一項で使用し、Outputの式において基礎の部分になります。内容はSelectionAを参照してください。
Bias 第2項以降に値の補正をします。基本的にZeroでかまいません。
Operation Outputの出力方式を変更します。AddとSubtract以外はほとんど使われていません。
  • Add…dに対し第二項以降は加算を行います。
  • Subtract…dに対し第二項以降は減産を行います。dがzeroの場合、テクスチャが消えます。
  • CompR8Greater…aのR値とbのR値を比較し、a(R)>b(R)ならcを、そうでなければ0をdに加算します
  • CompR8Equal…aのR値とbのR値を比較し、a(R)=b(R)ならcを、そうでなければ0をdに加算します
  • CompGR16Greater…aのRとG、とbのRとG値を比較し、a(GR)>b(GR)ならcを、そうでなければ0をdに加算します
  • CompGR16Equal…aのRとG、とbのRとG値を比較し、a(GR)=b(GR)ならcを、そうでなければ0をdに加算します
  • CompGBR24Greater…aのRGBとbのRGB値を比較し、a(BGR)>b(BGR)ならcを、そうでなければ0をdに加算します
  • CompGBR24Equal…aのRGBとbのRGB値を比較し、a(BGR)=b(BGR)ならcを、そうでなければ0をdに加算します
  • CompRBR8Greater…CompGBR24Greaterと同じ?
  • CompRGB8Equal…CompGBR24Equalと同じ?
Clamp Outputの方程式のレンジを調整します。万が一出力が0を下回ったり1以上になることを防ぐためにあるので、基本Trueをおすすめします。
Scale Outputの方程式に倍率をかけます。MultipleByXのXが大きいほどテクスチャが乗算されていきます(=明るくなる)。逆にDivideBy2は除算を行います
Destination 出力結果のストア先を参照します。OutputColorの場合、直前のOutputColorに上書きを行います。そのほかは各レジスタへ保存します。

TEV Alpha Output

ColorSelection(A,B,C,D)におけるCの設定です。アルファに関して設定を行いますが、基本的にTEV Color Outputと情報は同じです。

TEV indirect Texturing

ColorSelection(A,B,C,D)におけるDの設定です。詳細は不明ですが、BiasかMatrixの設定が変わっているのがだいたいです。