ShadeTex(陰テクスチャ)とは
物体の表面が何色であるかを決定するテクスチャ二種のうちのひとつです。
決まった呼び名はありませんが、陰テクスチャとかShadeTex(cgfxShaderファイルのShadeTexという項目に書かれているので)などと呼ばれます。
以降、本ページでは陰テクスチャと表記します。
決まった呼び名はありませんが、陰テクスチャとかShadeTex(cgfxShaderファイルのShadeTexという項目に書かれているので)などと呼ばれます。
以降、本ページでは陰テクスチャと表記します。
ポリゴン面の各ピクセルが何色であるかは、次の計算式によって決定されます。
(テクスチャ * ColorBlend * 0.1) * (陰テクスチャ * ShadeBlend * 0.1) * ハイライト * HighLightBlend * 0.1
テクスチャ画像から各ピクセルへの割り当ては、テクスチャの場合UVによって、
陰テクスチャの場合光線ベクトルとポリゴン面の法線ベクトルとの角度によって決まります。
※ここわけわからんですが、このページの主題ではないので流します
陰テクスチャの場合光線ベクトルとポリゴン面の法線ベクトルとの角度によって決まります。
※ここわけわからんですが、このページの主題ではないので流します
陰テクスチャの仕様
陰テクスチャには通常、縦16ピクセル、横256ピクセルの画像ファイルが用いられます。
しかし実は、このファイルのほんの一部のデータしか、陰テクスチャとして使われません。
しかし実は、このファイルのほんの一部のデータしか、陰テクスチャとして使われません。
画像ファイルのうち、
- 最も左のピクセルが「一番暗い」色として使われます
- 左から193個目のピクセルが「一番明るい」色として使われます
- 左から194個目以降のピクセルは使われません
- 上から8個目のピクセルだけが使われ、他は使われません
これらの仕様を理解することで、意図したものにより近い質感を与えられます。
例:この画像ファイルを、ボディの陰テクスチャとして使用すると、
3Dカスタム少女ではこのように表示される。
以下執筆中?
上記、箇条書きの部分を(備忘録として)書きたかっただけなのです・・・
なんか書くことある方はご自由にどうぞ
上記、箇条書きの部分を(備忘録として)書きたかっただけなのです・・・
なんか書くことある方はご自由にどうぞ
陰テクスチャと法線ベクトルについて纏めてみました
※以下の解説ではシェーダ設定を
string technique = "AllAmb_ShadowOff"※新テク追加technique
float Ambint = [50]
に変更したシェーダ設定ファイルを使用しています。
string technique = "AllAmb_ShadowOff"※新テク追加technique
float Ambint = [50]
に変更したシェーダ設定ファイルを使用しています。
陰テクスチャ
3Dモデル
3Dモデルに陰テクスチャを貼付ける場合、まず各面の法線ベクトル(面の向き)から、各面の色が決定されます。
陰テクスチャは、光の方向に対して0度〜180度の角度毎に使用される領域が決まっており、上図のテクスチャの場合は
左端から0度、右端で180度となっています。
陰テクスチャは、光の方向に対して0度〜180度の角度毎に使用される領域が決まっており、上図のテクスチャの場合は
左端から0度、右端で180度となっています。
ポリゴンの面(頂点)にはその向きを表す法線ベクトルがあります。
上図の円柱の各面の法線ベクトルは以下のようになります。
※各角度は光の方向に対しての角度です
上図の円柱の各面の法線ベクトルは以下のようになります。
※各角度は光の方向に対しての角度です
円柱の各法線ベクトルから、その角度に対応する陰テクスチャ上の色がピックアップされ、各面の色(陰)が決定されます。
ここで、円柱が接続された面で構成されていた場合は、面と面の間の法線ベクトル(陰の色)が補完されます。
実際の描画結果はこのようになります。
※シェーダ設定の「string technique = "AllAmb_ShadowOff"」は、陰テクスチャの全域(横)幅をモデル全域(光方向)幅と同じ長さに変更するもの。表示には新テクMOD(toonshader2.tah)が必要となります。
また「float Ambuent = [50]」に設定する事で陰テクスチャ全域を無駄無く適用する事ができます。
※陰テクスチャは適用できる幅が広ければ広い程陰の解像度が高くなり、結果的に奇麗なシェーディングを得る事ができます。
グラデーション系の陰テクスチャを使用する場合はこの傾向が顕著に現れるようです。
また「float Ambuent = [50]」に設定する事で陰テクスチャ全域を無駄無く適用する事ができます。
※陰テクスチャは適用できる幅が広ければ広い程陰の解像度が高くなり、結果的に奇麗なシェーディングを得る事ができます。
グラデーション系の陰テクスチャを使用する場合はこの傾向が顕著に現れるようです。
このwikiの更新情報RSS