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

Revision 2196, 2.7 KB checked in by szirmay, 17 years ago (diff)
Line 
1
2struct PS_INPUT
3{
4    float4 posScr: POSITION;
5    float2 texCoord: TEXCOORD0;
6    float2 screenCoord: TEXCOORD1;   
7};
8
9
10struct PS_OUTPUT
11{
12    float4  color: COLOR0;
13};
14
15///////////////////////////////////////////////////////////////////////////////
16
17sampler tex0: register(s0);
18
19///////////////////////////////////////////////////////////////////////////////
20// Pixelshader
21// Profile: 2x0
22const int CUBEMAP_SIZE = 128;
23const int REDUCED_CUBEMAP_SIZE = 4;
24
25PS_OUTPUT main(PS_INPUT input)
26{
27    PS_OUTPUT output;
28   
29   
30    int a = input.texCoord.x;
31    int b = input.texCoord.y;
32    int nFace = a * 3.0 + b;
33    float2 texCoord;
34   
35    if(input.texCoord.x < 1.0 / 3.0)
36    {
37      if(input.texCoord.y < 1.0 / 2.0)
38      {
39        nFace = 0;
40         texCoord = (input.texCoord - float2(0,0))*float2(3.0, 2.0);
41      }
42      else
43      {
44        nFace = 1;
45        texCoord = (input.texCoord - float2(0,0.5))*float2(3.0, 2.0);
46      }
47    }
48    else if(input.texCoord.x < 2.0 / 3.0)
49    {
50      if(input.texCoord.y < 1.0 / 2.0)
51      {
52        nFace = 2;
53        texCoord = (input.texCoord - float2(1.0 / 3.0, 0.0))*float2(3.0, 2.0);
54      }
55      else
56      {
57        nFace = 3;
58        texCoord = (input.texCoord - float2(1.0 / 3.0, 0.5))*float2(3.0, 2.0);
59      }
60    }
61    else
62    {
63      if(input.texCoord.y < 1.0 / 2.0)
64      {
65        nFace = 4;
66        texCoord = (input.texCoord - float2(2.0 / 3.0, 0.0))*float2(3.0, 2.0);
67      }
68      else
69      {
70        nFace = 5;
71        texCoord = (input.texCoord - float2(2.0 / 3.0, 0.5))*float2(3.0, 2.0);
72      }
73    }
74   
75    float3 dir;
76    float4 color = float4(0,0,0,0); 
77    //float2 pos = (input.texCoord - float2(a, b)) * 2.0 - 1.0;
78    float2 pos = texCoord * 2.0 - 1.0 ;// 1.0 /128.0;
79   
80   
81    if (nFace == 0) dir = float3(1, pos.y, pos.x);
82    if (nFace == 1) dir = float3(-1, pos.y, -pos.x);
83    if (nFace == 2) dir = float3(pos.x, 1, -pos.y);
84    if (nFace == 3) dir = float3(pos.x, -1, pos.y);
85    if (nFace == 4) dir = float3(pos.x, pos.y, 1);
86    if (nFace == 5) dir = float3(-pos.x, pos.y,-1);
87  /* 
88    if (nFace == 0) output.color = float4(1, 0, 0, 1);
89    if (nFace == 1) output.color = float4(0.5, 0, 0, 1);
90    if (nFace == 2) output.color = float4(0, 1, 0, 1);
91    if (nFace == 3) output.color = float4(0, 0.5, 0, 1);
92    if (nFace == 4) output.color = float4(0, 0, 1, 1);
93    if (nFace == 5) output.color = float4(0, 0, 0.5, 1);*/
94   
95    output.color = texCUBE( tex0, dir);
96    //output.color = tex2Dlod( tex0, float4(input.texCoord.xy ,0,0));
97    //output.color = float4(input.texCoord,0,1);
98    return output;
99}
100
101///////////////////////////////////////////////////////////////////////////////
Note: See TracBrowser for help on using the repository browser.