vertex_program AluminumVP cg { source materials/programs/aluminum.cgfx profiles vs_1_1 arbvp1 entry_point NoiseVS default_params { param_named_auto Lamp0Pos light_position 0 param_named_auto Lamp1Pos light_position 1 param_named_auto WorldITXf inverse_transpose_world_matrix param_named_auto WorldXf world_matrix param_named_auto ViewIXf inverse_view_matrix param_named_auto WvpXf worldviewproj_matrix param_named_auto WorldXf world_matrix param_named Transform3DNoiseCoordinates float 0 param_named FadeDistance float 260 param_named NormMapScale float 0.2 } } fragment_program AluminumFP cg { source materials/programs/aluminum.cgfx entry_point alumPSStuds profiles ps_2_x default_params { param_named_auto AmbiColor ambient_light_colour param_named_auto Lamp0Color light_diffuse_colour 0 param_named_auto Lamp1Color light_diffuse_colour 1 param_named Ks float 0.9 param_named SpecExpon float 25 param_named Kr float 0.7 param_named FresnelVal float 0.6 } } vertex_program BasicVP cg { source materials/programs/include/common.cgh profiles vs_1_1 arbvp1 entry_point basicVS default_params { param_named_auto Lamp0Pos light_position 0 param_named_auto Lamp1Pos light_position 1 param_named_auto WorldITXf inverse_transpose_world_matrix param_named_auto WorldXf world_matrix param_named_auto ViewIXf inverse_view_matrix param_named_auto WvpXf worldviewproj_matrix param_named_auto WorldXf world_matrix } } fragment_program BasicFP cg { source materials/programs/include/common.cgh entry_point basicPSStuds profiles ps_2_x default_params { param_named_auto AmbiColor ambient_light_colour param_named_auto Lamp0Color light_diffuse_colour 0 param_named_auto Lamp1Color light_diffuse_colour 1 } } material Aluminum_Low { technique lod1 { pass { ambient vertexcolour diffuse vertexcolour specular 0.0 0.0 0.0 25 max_lights 2 texture_unit { texture_alias Studs tex_coord_set 0 texture textures/surfacesAlpha.png colour_op alpha_blend //ignore alpha from SurfaceAlpha.png. Use fixed alpha. VERY IMPORTANT FOR OFF-SCREEN RENDERING! alpha_op_ex source1 src_manual src_manual 1 1 1 filtering trilinear } } } } material Aluminum_Med : Aluminum_Low { lod_distances 320.0 technique LegacyFF_lod0 { lod_index 0 pass { ambient vertexcolour diffuse vertexcolour specular 0.0 0.0 0.0 25 // mimic current wood shader limitation max_lights 2 texture_unit { tex_coord_set 1 texture textures/AluminumFallback.png filtering trilinear colour_op_ex add_signed src_texture src_current //ignore alpha from SurfaceAlpha.png. Use alpha from vertices (in this case, it is not set, so use manual 1.0). VERY IMPORTANT FOR OFF-SCREEN RENDERING! alpha_op_ex source1 src_manual src_manual 1.0 1.0 1.0 transform 0.06 0 0 0 0 0.06 0 0 0 0 0.06 0 0 0 0 1 } texture_unit { texture_alias Studs tex_coord_set 0 texture textures/surfacesAlpha.png colour_op alpha_blend //ignore alpha from SurfaceAlpha.png. Use fixed alpha. VERY IMPORTANT FOR OFF-SCREEN RENDERING! alpha_op_ex source1 src_manual src_manual 1 1 1 filtering trilinear } } } technique lod1 { lod_index 1 pass { ambient vertexcolour diffuse vertexcolour specular 0.0 0.0 0.0 25 // mimic current wood shader limitation max_lights 2 texture_unit { tex_coord_set 1 texture textures/AluminumFallback.png filtering trilinear colour_op_ex add_signed src_texture src_current //ignore alpha from SurfaceAlpha.png. Use alpha from vertices (in this case, it is not set, so use manual 1.0). VERY IMPORTANT FOR OFF-SCREEN RENDERING! alpha_op_ex source1 src_manual src_manual 1.0 1.0 1.0 transform 0.06 0 0 0 0 0.06 0 0 0 0 0.06 0 0 0 0 1 } } } } material Aluminum_High : Aluminum_Low { lod_distances 320.0 technique Procedural_lod0 { lod_index 0 pass { max_lights 2 vertex_program_ref AluminumVP { } fragment_program_ref AluminumFP { } texture_unit { texture_alias Studs tex_coord_set 0 texture textures/SurfacesAlpha.png filtering trilinear } texture_unit { tex_coord_set 1 texture textures/Crinkled_Normal.dds filtering trilinear } texture_unit { texture_alias SkyBox tex_coord_set 2 texture textures/penv.dds cubic filtering trilinear } } } technique lod1 { lod_index 1 } }