vertex_program GTP/Demo/BumpMapped_VS hlsl { source bump.hlsl entry_point BaseVS target vs_2_0 } fragment_program GTP/Demo/BumpMapped_PS hlsl { source bump.hlsl entry_point BumpPS target ps_2_0 } fragment_program GTP/Demo/ParallaxMapped_PS hlsl { source parallax.hlsl entry_point ParallaxSlopeIterationPS target ps_3_0 } material towermaterial { technique { pass { vertex_program_ref GTP/Demo/BumpMapped_VS { param_named_auto WorldViewProj worldviewproj_matrix param_named_auto World world_matrix param_named_auto WorldI inverse_world_matrix param_named_auto wLightPos light_position 0 param_named_auto wCamPos camera_position param_named textureRepeat float 6 } fragment_program_ref GTP/Demo/ParallaxMapped_PS { param_named HEIGHT_SCALE float 0.16 param_named HEIGHT_BIAS float -0.04 param_named textureRepeat float 6 } texture_unit { texture stone.bmp tex_coord_set 0 colour_op replace } texture_unit { texture towerwall.bmp tex_coord_set 1 colour_op modulate } texture_unit { texture stoneNormal.dds tex_coord_set 0 } } } } material towermaterialBump { technique { pass { vertex_program_ref GTP/Demo/BumpMapped_VS { param_named_auto WorldViewProj worldviewproj_matrix param_named_auto World world_matrix param_named_auto WorldI inverse_world_matrix param_named_auto wLightPos light_position 0 param_named_auto wCamPos camera_position param_named textureRepeat float 6 } fragment_program_ref GTP/Demo/BumpMapped_PS { } texture_unit { texture stone.bmp tex_coord_set 0 colour_op replace } texture_unit { texture towerwall.bmp tex_coord_set 1 colour_op modulate } texture_unit { texture stoneNormal.dds tex_coord_set 0 } } } } material towermaterialNoBump { technique { pass { ambient 1 1 1 1 diffuse 1 1 1 1 specular 0 0 0 0 emissive 0 0 0 texture_unit { texture stone.bmp tex_coord_set 0 } texture_unit { texture towerwall.bmp tex_coord_set 1 colour_op modulate } } } }