- Timestamp:
- 06/27/06 10:17:56 (19 years ago)
- Location:
- GTP/trunk/App/Demos/Illum/Ogre/Media/materials
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Illum/Ogre/Media/materials/programs/GameTools_DepthShadow.hlsl
r807 r1060 32 32 float4 hPosition : POSITION; 33 33 float4 Position : TEXCOORD0; 34 float4 cPosition : TEXCOORD1; 34 35 }; 35 36 36 37 VS_OUT_SHADOW depthShadowVS(float4 position : POSITION, 37 38 uniform float4x4 world, 39 uniform float4x4 worldView, 38 40 uniform float4x4 worldViewProj) 39 41 { … … 41 43 OUT.hPosition = mul(worldViewProj, position); 42 44 OUT.Position = mul(world, position); 45 OUT.cPosition = mul(worldView, position); 43 46 return OUT; 44 47 } … … 48 51 uniform float4x4 lightView, 49 52 uniform float4x4 lightViewProj, 50 uniform sampler2D depthShadowMap ):COLOR 51 { 52 float bias = 0.0; 53 float4 shadowColor = float4(0.4, 0.4, 0.4, 1.0); 53 uniform float4x4 lightView2, 54 uniform float4x4 lightViewProj2, 55 uniform sampler2D depthShadowMap : register(s0), 56 uniform sampler2D depthShadowMap2 : register(s1)):COLOR 57 { 58 float bias = 0.06; 59 float4 shadowColor = float4(0.6, 0.6, 0.6, 1.0); 54 60 55 float4 light = 1; 61 float4 light1 = 1; 62 float4 light2 = 1; 63 float weight1 = 1; 64 float weight2 = 1; 56 65 57 float4 lightCamPos = mul(lightView, IN.Position); 58 float d = length(lightCamPos.xyz); 66 float4 lightCamPos1 = mul(lightView, IN.Position); 67 float d1 = length(lightCamPos1.xyz); 68 float4 lightScreenPos1 = mul(lightViewProj, IN.Position); 69 lightScreenPos1 = lightScreenPos1 / lightScreenPos1.w ; 70 lightScreenPos1 = ( lightScreenPos1 + 1.0 ) / 2.0; 71 lightScreenPos1.y = 1.0 - lightScreenPos1.y; 72 float4 storedDepth1 = tex2D(depthShadowMap, lightScreenPos1.xy); 73 if(storedDepth1.r + bias < d1) 74 light1=0; 59 75 60 float4 lightScreenPos = mul(lightViewProj, IN.Position);61 lightScreenPos = lightScreenPos / lightScreenPos.w ;62 float dist = length(lightScreenPos.xy);63 76 64 if(dist < 1.0 && lightCamPos.z < 0) 77 float4 lightCamPos2 = mul(lightView2, IN.Position); 78 float d2 = length(lightCamPos2.xyz); 79 80 81 float4 lightScreenPos2 = mul(lightViewProj2, IN.Position); 82 lightScreenPos2 = lightScreenPos2 / lightScreenPos2.w ; 83 84 if(abs(lightScreenPos2.x) < 0.99 && abs(lightScreenPos2.y) < 0.99 ) 65 85 { 66 lightScreenPos = ( lightScreenPos + 1.0 ) / 2.0; 67 lightScreenPos.y = 1.0 - lightScreenPos.y; 68 float4 storedDepth = tex2D(depthShadowMap, lightScreenPos.xy); 69 70 71 if(storedDepth.r + bias < d) 72 light = shadowColor; 73 if(storedDepth.r == 0) 74 light = 1; 86 lightScreenPos2 = ( lightScreenPos2 + 1.0 ) / 2.0; 87 lightScreenPos2.y = 1.0 - lightScreenPos2.y; 88 float4 storedDepth2 = tex2D(depthShadowMap2, lightScreenPos2.xy); 89 if(storedDepth2.r + bias < d2) 90 light2=0; 75 91 } 76 92 else 77 light = 1;93 weight2 = 0; 78 94 79 return light; 95 weight1 = 1 - weight2; 96 97 return saturate((light1*weight1 + light2*weight2) + shadowColor); 80 98 } 81 99 -
GTP/trunk/App/Demos/Illum/Ogre/Media/materials/programs/GameTools_Localized_EnvMap.hlsl
r875 r1060 245 245 } 246 246 247 void PhotonMapSoftShadowPS( float2 texCoord : TEXCOORD0, 248 float3 wPos : TEXCOORD1, 249 float3 mNormal : TEXCOORD2, 250 uniform float3 cameraPos, 251 uniform samplerCUBE DistanceMap : register(s0), 252 uniform float3 lastCenter, 253 out float4 Color :COLOR0) 254 { 255 256 Color = float4(1,1,1,1); 257 258 mNormal = normalize(mNormal); 259 float3 newTexCoord; 260 float3 mPos = wPos - lastCenter; 261 float3 V = normalize(wPos - cameraPos); 262 newTexCoord = V; 263 264 newTexCoord = Hit(mPos, V, DistanceMap); 265 266 Color = float4(normalize(newTexCoord),1); 267 } 247 268 248 269 249 ///////////////////// -
GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/GameTools.material
r847 r1060 1 2 3 material GameTools/HPS 4 { 5 6 technique 7 { 8 pass 9 { 10 IllumTechniques 11 { 12 RenderTechnique HPS 13 { 14 particle_script GameTools/Little 15 } 16 } 17 18 scene_blend add 19 20 lighting off 21 depth_check off 22 23 texture_unit 24 { 25 texture 26 } 27 28 29 } 30 } 31 } 32 33 34 material Flare 35 { 36 technique 37 { 38 pass 39 { 40 //cull_hardware none 41 lighting off 42 //scene_blend add 43 //scene_blend_op add 44 //scene_blend_op_alpha add 45 //scene_blend_alpha add 46 depth_write off 47 48 ambient 1 0 0 1 49 diffuse 1 0 0 1 50 //texture_unit 51 //{ 52 // texture flare.png 53 //} 54 } 55 } 56 } 57 1 58 material Examples/MorningSkyBox 2 59 { … … 626 683 pass 627 684 { 685 686 IllumTechniques 687 { 688 RenderTechnique ReducedColorCubeMap 689 { 690 update_interval 3 691 distance_calc false 692 face_angle_calc false 693 update_all_face false 694 } 695 } 696 697 628 698 vertex_program_ref GameTools/DiffuseVS 629 699 { … … 735 805 param_named_auto worldViewProj worldviewproj_matrix 736 806 param_named_auto world world_matrix 807 param_named_auto worldIT inverse_transpose_world_matrix 737 808 } 738 809 fragment_program_ref GameTools/PhotonMapCausticPS … … 892 963 pass 893 964 { 894 895 cull_hardware none896 cull_software none897 lighting off898 scene_blend add899 depth_write off900 901 902 903 904 905 param_named_auto Proj projection_matrix906 907 908 909 910 911 912 913 914 915 965 966 cull_hardware none 967 cull_software none 968 lighting off 969 scene_blend add 970 depth_write off 971 972 vertex_program_ref GameTools/SpriteVS 973 { 974 param_named_auto worldViewProj worldviewproj_matrix 975 param_named_auto worldView worldview_matrix 976 param_named_auto Proj projection_matrix 977 } 978 fragment_program_ref GameTools/SpritePS 979 { 980 981 } 982 983 texture_unit 984 { 985 texture flare.png 986 } 916 987 917 988 } -
GTP/trunk/App/Demos/Illum/Ogre/Media/materials/scripts/GameTools.program
r835 r1060 179 179 } 180 180 181 fragment_program GameTools/PhotonMapSoftShadowPS hlsl182 {183 source GameTools_Localized_EnvMap.hlsl184 entry_point PhotonMapSoftShadowPS185 target ps_3_0186 }181 //fragment_program GameTools/PhotonMapSoftShadowPS hlsl 182 //{ 183 // source GameTools_Localized_EnvMap.hlsl 184 // entry_point PhotonMapSoftShadowPS 185 // target ps_3_0 186 //} 187 187 188 188
Note: See TracChangeset
for help on using the changeset viewer.