source: GTP/branches/IllumWPdeliver2008dec/IlluminationWP/demos/OgreGames/CarGame/Media/materials/programs/GameTools_SoftShadow.hlsl @ 3255

Revision 3255, 1.7 KB checked in by szirmay, 15 years ago (diff)
Line 
1struct VertOut
2{
3        float4 hPosition        :POSITION;     
4        float2 texCoord         :TEXCOORD;     
5        float3 wPosition        :TEXCOORD1;
6        float3 wNormal          :TEXCOORD2;     
7};
8
9
10VertOut deaultVS(float4 position : POSITION,
11                float3 normal:NORMAL,
12                float2 texCoord : TEXCOORD0,
13                uniform float4x4 world_IT,
14                uniform float4x4 worldViewProj,
15                uniform float4x4 world)
16{
17  VertOut OUT;
18  OUT.texCoord = texCoord;
19  OUT.hPosition = mul(worldViewProj, position); 
20  OUT.wPosition = mul(world, position).xyz;
21  OUT.wNormal = mul( normal, world_IT);
22  //OUT.wNormal = normal;
23  return OUT;   
24}
25
26float4 deaultPS(VertOut IN,
27                                uniform samplerCUBE CubeMap : register(s1),
28                                uniform sampler2D Texture : register(s0),
29                                uniform float3 cubeMapCameraPosition):COLOR
30{
31        float4 Color = float4(1,1,1,1);
32       
33        float3 dir = IN.wPosition - cubeMapCameraPosition;
34        float4 shadow = texCUBE(CubeMap, float3(dir.xy,-dir.z) );
35                       
36        Color = tex2D(Texture, IN.texCoord) * (1.0- shadow);
37               
38        return Color;
39}
40
41
42float4 deault2PS(VertOut IN,
43                                uniform samplerCUBE CubeMap : register(s0),
44                                uniform float3 cubeMapCameraPosition,
45                                uniform float3 lightPosition,
46                                uniform float3 cameraPos
47                                ):COLOR
48{
49        float4 Color = float4(1,1,1,1);
50       
51        float3 dir = IN.wPosition - cubeMapCameraPosition;
52        float4 shadow = texCUBE(CubeMap, float3(dir.xy,-dir.z) );
53       
54        IN.wNormal = normalize(IN.wNormal);
55        float3 V = normalize(IN.wPosition - cameraPos);
56        float3 L = normalize(lightPosition - IN.wPosition);
57        float3 H = normalize(L + V);
58        float4 lighting = lit(dot(IN.wNormal, L),dot(IN.wNormal, H), 80);
59       
60                       
61        Color = (1.0 - shadow ) *  lighting.y * float4(0.4, 0.7, 0.6, 1) + lighting.z;
62               
63        return Color;
64}
Note: See TracBrowser for help on using the repository browser.