fragment_program GTP/MultiBounce/Refraction2L_PS hlsl { source GTPMultipleRefraction2L.hlsl entry_point MultipleRefractionPS target ps_3_0 flow_control prefer } fragment_program GTP/MultiBounce/PhotonMap2L_PS hlsl { source GTPMultipleRefraction2L.hlsl entry_point MultipleRefractionPhotonMap_PS target ps_3_0 flow_control prefer } material GTP/MultiBounce/PhotonMap2L { technique { pass { vertex_program_ref GTP/Basic/Shaded_VS { param_named_auto WorldViewProj worldviewproj_matrix param_named_auto World world_matrix param_named_auto WorldInv inverse_world_matrix } fragment_program_ref GTP/MultiBounce/PhotonMap2L_PS { param_named_auto cameraPos camera_position param_named lastCenter float3 0 0 0 param_named refIndex float 0.77 } //cubemap of distances texture_unit { } texture_unit { texture object_SE_0_COLORCUBEMAP_L1 } } } } material GTP/MultiBounce/CauCube_PointSprite { technique { pass { cull_hardware none scene_blend src_alpha one depth_check off point_sprites on vertex_program_ref GTP/Caustic/CauCube_PointSprite_VS { param_named_auto WorldView worldview_matrix param_named_auto Proj projection_matrix param_named CauSpriteSize float 15 } fragment_program_ref GTP/Caustic/CauCube_PointSprite_PS { param_named CausticColor float4 0.8 0.8 0.8 0.5 } texture_unit { vertex_texture true } texture_unit { texture PowerOfPhotonHitTexel.dds } } } } //object_SE_0_DISTANCECUBEMAP_L1 material GTP/MultiBounce/Refractor2L { technique { pass { //cull_hardware none IllumTechniques { RenderTechnique CausticCaster { attenuation 1000 photonmap_resolution 32 caustic_cubemap_resolution 256 photon_map_material GTP/MultiBounce/PhotonMap2L caustic_map_material GTP/MultiBounce/CauCube_PointSprite //caustic_map_material GTP/Caustic/CauCube_Triangles //use_triangles true //blur_caustic_cubemap true } RenderTechnique ColorCubeMap { resolution 1024 update_interval 1 distance_calc false face_angle_calc false update_all_face true } RenderTechnique DistanceCubeMap { resolution 1024 update_interval 1 distance_calc false face_angle_calc false update_all_face true } RenderTechnique ColorCubeMap { resolution 1024 layer 1 texture_unit_id 2 update_interval 1 distance_calc false face_angle_calc false update_all_face true render_env false render_self true self_material GTP/MultiBounce/NormalDistanceCCW } } vertex_program_ref GTP/Basic/Shaded_CPos_VS { param_named_auto WorldViewProj worldviewproj_matrix param_named_auto World world_matrix param_named_auto WorldInv inverse_world_matrix } fragment_program_ref GTP/MultiBounce/Refraction2L_PS { param_named_auto cameraPos camera_position param_named refIndex float 0.77 param_named sFresnel float 0.04 } //Cube map of environment texture_unit { //filtering none } //Cube map of environment distances texture_unit { filtering none } //Cube map of reflective object's normals and distances CCW texture_unit { filtering none } } } }