source: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/IllumDemo/src/res/levelutil/shader/prog/d3d9_hlsl/bloom_smooth_d3d9_hlsl_ps2x0.s3d_shadercode @ 2196

Revision 2196, 1.8 KB checked in by szirmay, 17 years ago (diff)
Line 
1///////////////////////////////////////////////////////////////////////////////
2//
3//      ##  ######
4//       ######  ###
5//  ## ###############        Shark 3D Engine (www.shark3d.com)
6//   ########## # # #
7//    ########                Copyright (c) 1996-2006 Spinor GmbH.
8//   ######### # # #          All rights reserved.
9//  ##   ##########
10//      ##
11//
12///////////////////////////////////////////////////////////////////////////////
13
14struct PS_INPUT
15{
16    float2 mainTexCoord: TEXCOORD0;
17    float4 baseVec: TEXCOORD2;
18};
19
20///////////////////////////////////////////////////////////////////////////////
21
22sampler tex0: register(s0);
23
24///////////////////////////////////////////////////////////////////////////////
25// Pixelshader
26// Profile: 2x0
27
28float4 main(PS_INPUT input): COLOR0
29{
30    float2 mainTexCoord = input.mainTexCoord;
31    float2 offsPix0 = input.baseVec.xy;
32    float2 offsPix1 = input.baseVec.zw;
33    float2 offsPix2 = offsPix0 + offsPix1;
34    float2 offsPix3 = offsPix0 - offsPix1;
35
36    float4 val = tex2D(tex0, mainTexCoord);
37    float4 val0 = tex2D(tex0, mainTexCoord.xy + offsPix0);
38    float4 val1 = tex2D(tex0, mainTexCoord.xy + offsPix1);
39    float4 val2 = tex2D(tex0, mainTexCoord.xy + offsPix2);
40    float4 val3 = tex2D(tex0, mainTexCoord.xy + offsPix3);
41    float4 val4 = tex2D(tex0, mainTexCoord.xy - offsPix0);
42    float4 val5 = tex2D(tex0, mainTexCoord.xy - offsPix1);
43    float4 val6 = tex2D(tex0, mainTexCoord.xy - offsPix2);
44    float4 val7 = tex2D(tex0, mainTexCoord.xy - offsPix3);
45
46    float4 sum
47        = (val * val + val0 * val0 + val1 * val1 + val2 * val2 + val3 * val3
48        + 0.5 * (val4 * val4 + val5 * val5 + val6 * val6 + val7 * val7))
49        * 0.142857f; // = approx. 1.0 / 7.0
50
51    return sqrt(sum);
52}
53
54///////////////////////////////////////////////////////////////////////////////
Note: See TracBrowser for help on using the repository browser.