「環境光」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) |
||
| 13行目: | 13行目: | ||
* [[定数バッファ]]で環境光の「色」と「明るさ」を送り込んで、 | * [[定数バッファ]]で環境光の「色」と「明るさ」を送り込んで、 | ||
* [[ピクセルシェーダー]]で単純に全[[ピクセル]]に加算する。 | * [[ピクセルシェーダー]]で単純に全[[ピクセル]]に加算する。 | ||
<source lang="cg"> | |||
float AmbientStrength; | |||
float3 AmbientColor; | |||
struct VSOutput { | |||
float4 Position: SV_POSITION; | |||
float4 Color : COLOR0; | |||
}; | |||
float4 PSFunc(VSOutput input) : SV_TARGET | |||
{ | |||
// 強さと色を掛けて | |||
float3 ambient = AmbientStrength * AmbientColor; | |||
// 頂点色と掛ける(テクスチャを使う場合はサンプリング色と掛ける) | |||
float3 result = input.Color * ambient; | |||
return float4(result,1); | |||
} | |||
</source> | |||
もう少し上を目指す場合は[[アンビエントオクルージョン]]という手法を使う。途端に複雑になるぞ。 | もう少し上を目指す場合は[[アンビエントオクルージョン]]という手法を使う。途端に複雑になるぞ。 | ||