7bc535780c
The server will implement some classes it probably shouldn't need because certain items or game states depend on them.
72 lines
1.8 KiB
HLSL
72 lines
1.8 KiB
HLSL
float xBlurDistance;
|
|
|
|
Texture xTexture;
|
|
sampler TextureSampler = sampler_state { Texture = <xTexture>; };
|
|
|
|
Texture xLosTexture;
|
|
sampler LosSampler = sampler_state { Texture = <xLosTexture>; };
|
|
|
|
|
|
Texture xWaterBumpMap;
|
|
sampler WaterBumpSampler =
|
|
sampler_state
|
|
{
|
|
Texture = <xWaterBumpMap>;
|
|
MagFilter = LINEAR;
|
|
MinFilter = LINEAR;
|
|
MipFilter = LINEAR;
|
|
AddressU = WRAP;
|
|
AddressV = WRAP;
|
|
};
|
|
|
|
float xWaveWidth;
|
|
float xWaveHeight;
|
|
float2 xWavePos;
|
|
float2 xBumpPos;
|
|
|
|
float4 main(float4 position : SV_Position, float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0
|
|
{
|
|
float4 bumpColor = tex2D(WaterBumpSampler, texCoord+xWavePos+xBumpPos);
|
|
bumpColor = (bumpColor + tex2D(WaterBumpSampler, texCoord-xWavePos*2.0f+xBumpPos))/2.0f;
|
|
|
|
float2 samplePos = texCoord;
|
|
|
|
samplePos.x+=(bumpColor.r-0.5f)*xWaveWidth;
|
|
samplePos.y+=(bumpColor.g-0.5f)*xWaveHeight;
|
|
|
|
float4 sample;
|
|
sample = tex2D( TextureSampler, float2(samplePos.x+xBlurDistance, samplePos.y+xBlurDistance));
|
|
sample += tex2D( TextureSampler, float2(samplePos.x-xBlurDistance, samplePos.y-xBlurDistance));
|
|
sample += tex2D( TextureSampler, float2(samplePos.x+xBlurDistance, samplePos.y-xBlurDistance));
|
|
sample += tex2D( TextureSampler, float2(samplePos.x-xBlurDistance, samplePos.y+xBlurDistance));
|
|
|
|
sample = sample / 4;
|
|
|
|
return sample;
|
|
}
|
|
|
|
float4 main2(float4 position : SV_Position, float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0
|
|
{
|
|
float4 losColor = tex2D(LosSampler, texCoord);
|
|
|
|
float4 outColor = float4(losColor.x, losColor.y, losColor.z, color.w);
|
|
|
|
return outColor;
|
|
}
|
|
|
|
|
|
technique WaterShader
|
|
{
|
|
pass Pass1
|
|
{
|
|
PixelShader = compile ps_4_0_level_9_1 main();
|
|
}
|
|
}
|
|
|
|
technique LosShader
|
|
{
|
|
pass Pass1
|
|
{
|
|
PixelShader = compile ps_4_0_level_9_1 main2();
|
|
}
|
|
} |