高さフォグ★ 1.はじめに
高さフォグもやってみました。
★ 2.高さフォグ
距離フォグでは,カメラからの距離でフォグの強さを決定していましたが…
高さフォグでは,カメラからの距離ではなく,地面からの高さによってフォグの強さを決定するようにプログラムを修正します。 シェーダ側の処理は下のようになります。
00066: //-------------------------------------------------------------------------------------------------
00067: // Name : VertexShaderFunction()
00068: // Desc : 頂点シェーダ
00069: //-------------------------------------------------------------------------------------------------
00070: VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
00071: {
00072: VertexShaderOutput output = (VertexShaderOutput)0;
00073:
00074: float4 worldPosition = mul(input.Position, World);
00075: float4 viewPosition = mul(worldPosition, View);
00076: output.Position = mul(viewPosition, Projection);
00077:
00078: // TODO: add your vertex shader code here.
00079: output.Texcoord = input.Texcoord;
00080: output.Normal = input.Normal;
00081: output.ObjPosition = input.Position;
00082:
00083: // フォグ係数算出
00084: output.Fog = FogCoord.x + input.Position.y * FogCoord.y;
00085:
00086: return output;
00087: }
00088:
★ Download
本ソースコードおよびプログラムを使用したことによる如何なる損害も製作者は責任を負いません。
本ソースコードおよびプログラムは自己責任でご使用ください。 プログラムの作成にはMicrosoft Visual Studio 2008 SP1 Professional, XNA Game Studio 3.0を用いています。 |