Changeset 2403 for GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPPathMap/PathMapWeightCompute.hlsl
- Timestamp:
- 06/05/07 01:55:55 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Illum/Ogre/Media/materials/GTPPathMap/PathMapWeightCompute.hlsl
r2337 r2403 57 57 float cosb = max(dot(dir, diff), 0); 58 58 59 float visibility = 1;59 float visibility = 0; 60 60 float4 lightVPos = mul(lightViewProj, float4(pos,1)); 61 62 if( lightVPos.z > 0.0)63 {64 lightVPos /= lightVPos.w;65 float d = length(lightVPos.xy);66 67 if(d <= 1.0)68 {69 70 float dist = sqrt(dist2);71 float distNorm = dist / lightFarPlane;72 lightVPos.xy = (lightVPos.xy + 1.0) / 2.0;73 lightVPos.y = 1.0 - lightVPos.y;74 float storedDist = tex2D(shadowMap, lightVPos.xy).r;75 dist -= DIST_BIAS;76 visibility = (distNorm <= storedDist);77 61 62 //if( lightVPos.z > 0.0) 63 //{ 64 lightVPos /= lightVPos.w; 65 //float d = length(lightVPos.xy); 66 67 //if(d <= 1.0) 68 { 69 float dist = dist / lightFarPlane; 70 lightVPos.xy = (lightVPos.xy + 1.0) / 2.0; 71 lightVPos.y = 1.0 - lightVPos.y; 72 float storedDist = tex2D(shadowMap, lightVPos.xy).r; 73 visibility = dist < storedDist + DIST_BIAS; 78 74 } 79 } 80 81 float spotFalloff = (dot(normalize(-diff), normalize(lightDir)) - lightAngleCos) / (1.0 - lightAngleCos); 75 // } 76 //visibility = 1.0 - visibility; 77 visibility = 1.0 + 0.00001 * visibility; 78 float spotFalloff = (dot(-diff, normalize(lightDir)) - lightAngleCos) / (1.0 - lightAngleCos); 79 //spotFalloff = saturate(dot(normalize(pos - lightPos), normalize(lightDir))) + 0.0000000001 * lightAngleCos; 80 spotFalloff = 1.0 + spotFalloff * 0.000000001; 82 81 spotFalloff = pow(saturate(spotFalloff), spotLightFalloff); 83 84 85 visibility *= spotFalloff / (lightAttenuation.y + dist * lightAttenuation.z + dist * dist * lightAttenuation.w); 86 82 83 visibility *= spotFalloff / (lightAttenuation.y + dist * lightAttenuation.z + dist2 * lightAttenuation.w); 87 84 88 85 float4 ret = visibility * cosb * lightPower * lightColor; … … 114 111 float storedDist = texCUBE(shadowMap, float3(-diff.xy, diff.z)).r; 115 112 dist -= DIST_BIAS; 116 visibility = (distNorm <= storedDist); 117 113 visibility = (distNorm <= storedDist); 114 115 //visibility = 1.0 + 0.00001 * visibility; 118 116 visibility *= 1.0 / (lightAttenuation.y + dist * lightAttenuation.z + dist * dist * lightAttenuation.w); 119 117 … … 143 141 float2 coord2 = coord1 + float2(0.25 * dataColumnWidth, 0); 144 142 float3 w = tex2Dlod(allWeightsSampler, float4(coord1, 0, 0)).rgb; 145 float radrad = tex2Dlod(radionSampler, float4(coord 1, 0, 0)).a;143 float radrad = tex2Dlod(radionSampler, float4(coord2, 0, 0)).a; 146 144 weight += w * radrad; 147 145 clusterRad += radrad;
Note: See TracChangeset
for help on using the changeset viewer.