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 maintechnique { pass mainpass { 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 detail { texture towerdetailgrey.bmp tex_coord_set 1 colour_op modulate } texture_unit { texture stoneNormal.dds tex_coord_set 0 } } } } material wallmaterial : towermaterial { technique maintechnique { pass mainpass { texture_unit detail { texture walldetailgrey.bmp tex_coord_set 1 colour_op modulate } } } } 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 towerdetail.bmp tex_coord_set 1 colour_op modulate } texture_unit { texture stoneNormal.dds tex_coord_set 0 } } } }