fragment_program GTP/MultiBounce/Refraction_PS hlsl { source GTPMultipleReflection.hlsl entry_point MultipleRefractionPS target ps_3_0 flow_control prefer } material GTP/MultiBounce/Refractor { technique { pass { //cull_hardware none IllumTechniques { 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.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 } //Cube map of reflective object's normals and distances CW texture_unit { filtering none } } } }