fragment_program GTP/MultiBounce/PhotonMap_PS hlsl { source GTPMultipleReflection.hlsl entry_point MultipleRefractionPhotonMap_PS target ps_3_0 flow_control prefer } material GTP/MultiBounce/PhotonMap { 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/PhotonMap_PS { param_named_auto cameraPos camera_position param_named lastCenter float3 0 0 0 param_named refIndex float 0.995 } //cubemap of distances texture_unit { } texture_unit { texture object_SE_0_COLORCUBEMAP_L1 } texture_unit { texture object_SE_0_COLORCUBEMAP_L2 } } } } material GTP/MultiBounce/CauCube_Triangles { technique { pass { cull_hardware none cull_software none scene_blend src_alpha one depth_check off vertex_program_ref GTP/Caustic/CauCube_Triangles_VS { param_named_auto WorldView worldview_matrix param_named_auto Proj projection_matrix param_named PhotonMapResolution float 64 param_named WorldSize float 0.002 } fragment_program_ref GTP/Caustic/CauCube_Triangles_PS { param_named CausticColor float4 1 1 1 1 // param_named WorldSize float 6 param_named WorldSize float 1 } texture_unit { vertex_texture true } } } } //object_SE_0_DISTANCECUBEMAP_L1 material GTP/MultiBounce/CausticRefractor { technique { pass { //cull_hardware none IllumTechniques { RenderTechnique CausticCaster { attenuation 1000000 update_interval 1 update_all_face true photonmap_resolution 64 caustic_cubemap_resolution 256 //photon_map_material GTP/MultiBounce/PhotonMap photon_map_material GTP/Caustic/PhotonMap_HitEnv caustic_map_material GTP/MultiBounce/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 } RenderTechnique ColorCubeMap { resolution 1024 layer 2 texture_unit_id 3 update_interval 1 distance_calc false face_angle_calc false update_all_face true render_env false render_self true self_material GTP/MultiBounce/NormalDistanceCW } } 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/Refraction_PS { param_named_auto cameraPos camera_position param_named refIndex float 0.995 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 } //Cube map of reflective object's normals and distances CW texture_unit { filtering none } } } }