// Bump map with Parallax offset vertex program, support for this is required vertex_program Examples/OffsetMappingVPCg cg { source OffsetMapping.cg entry_point main_vp profiles vs_1_1 arbvp1 } // Bump map with parallax fragment program fragment_program Examples/OffsetMappingFPCg cg { source OffsetMapping.cg entry_point main_fp profiles ps_2_0 arbfp1 } // Bump map with Parallax offset vertex program, support for this is required vertex_program Examples/OffsetMappingVPShaderModel4 cg { source OffsetMapping.cg entry_point main_vp profiles vs_4_0 } // Bump map with parallax fragment program fragment_program Examples/OffsetMappingFPShaderModel4 cg { source OffsetMapping.cg entry_point main_fp profiles ps_4_0 } // Bump map with parallax fragment program fragment_program Examples/OffsetMappingPSAsm asm { source OffsetMapping_specular.asm // sorry, only for ps_1_4 and above:) syntax ps_1_4 default_params { // Parallax Height scale and bias param_indexed 2 float4 0.04 -0.02 1 0 } } // Bump map with parallax fragment program fragment_program Examples/OffsetMappingPSGLSLES glsles { source OffsetMapping_specular.glsles profiles glsles default_params { // Parallax Height scale and bias param_named scaleBias float4 0.04 -0.02 1 0 } } // Bump map with Parallax offset vertex program, support for this is required vertex_program Examples/OffsetMappingVPGLSLES glsles { source OffsetMappingVp.glsles profiles glsles } // Bump map with parallax fragment program fragment_program Examples/OffsetMappingFPGLSLES glsles { source OffsetMappingFp.glsles profiles glsles default_params { // assign samplers as required by GLSL param_named normalHeightMap int 0 param_named diffuseMap int 1 } } // Bump map with parallax fragment program fragment_program Examples/OffsetMappingPSGLSL glsl { source OffsetMapping_specular.glsl syntax glsl150 default_params { // Parallax Height scale and bias param_named scaleBias float4 0.04 -0.02 1 0 } } // Bump map with Parallax offset vertex program, support for this is required vertex_program Examples/OffsetMappingVPGLSL glsl { source OffsetMappingVp.glsl syntax glsl150 } // Bump map with parallax fragment program fragment_program Examples/OffsetMappingFPGLSL glsl { source OffsetMappingFp.glsl syntax glsl150 default_params { // assign samplers as required by GLSL param_named normalHeightMap int 0 param_named diffuseMap int 1 } } vertex_program Examples/OffsetMappingVP unified { delegate Examples/OffsetMappingVPGLSL delegate Examples/OffsetMappingVPGLSLES delegate Examples/OffsetMappingVPCg } fragment_program Examples/OffsetMappingFP unified { delegate Examples/OffsetMappingFPGLSL delegate Examples/OffsetMappingFPGLSLES delegate Examples/OffsetMappingFPCg } fragment_program Examples/OffsetMappingPS unified { delegate Examples/OffsetMappingPSGLSL delegate Examples/OffsetMappingPSGLSLES delegate Examples/OffsetMappingPSAsm } material Examples/OffsetMapping/Specular { technique ShaderModel4 { // ambient / depth pass { illumination_stage ambient vertex_program_ref Ogre/BasicVertexPrograms/AmbientOneTextureCgSm4 { param_named_auto worldViewProj worldviewproj_matrix } fragment_program_ref Ogre/BasicFragmentPrograms/PassthroughFpCgSm4ForAmbientOneTexture { } } // do the lighting and bump mapping with parallax pass pass { illumination_stage per_light scene_blend add depth_write off // Vertex program reference vertex_program_ref Examples/OffsetMappingVPShaderModel4 { param_named_auto lightPosition light_position_object_space 0 param_named_auto eyePosition camera_position_object_space param_named_auto worldViewProj worldviewproj_matrix } // Fragment program fragment_program_ref Examples/OffsetMappingFPShaderModel4 { param_named_auto lightDiffuse light_diffuse_colour 0 param_named_auto lightSpecular light_specular_colour 0 // Parallax Height scale and bias param_named scaleBias float4 0.04 -0.02 1 0 } // Normal + height(alpha) map texture_unit { texture rockwall_NH.tga tex_coord_set 0 } // Base diffuse texture map texture_unit { texture rockwall.tga tex_coord_set 1 } } } technique GLES { // ambient / depth pass { illumination_stage ambient vertex_program_ref Ogre/BasicVertexPrograms/AmbientOneTextureUnified { } fragment_program_ref Ogre/BasicFragmentPrograms/PassthroughFP { } } // do the lighting and bump mapping with parallax pass pass { illumination_stage per_light scene_blend add depth_write off // Vertex program reference vertex_program_ref Examples/OffsetMappingVP { param_named_auto lightPosition light_position_object_space 0 param_named_auto eyePosition camera_position_object_space param_named_auto worldViewProj worldviewproj_matrix } // Fragment program fragment_program_ref Examples/OffsetMappingFP { param_named_auto lightDiffuse light_diffuse_colour 0 param_named_auto lightSpecular light_specular_colour 0 // Parallax Height scale and bias param_named scaleBias float4 0.04 -0.02 1 0 } // Normal + height(alpha) map texture_unit { texture rockwall_NH.tga tex_coord_set 0 } // Base diffuse texture map texture_unit { texture rockwall.tga tex_coord_set 1 } } } technique gl dx9 { // ambient / depth pass { illumination_stage ambient vertex_program_ref Ogre/BasicVertexPrograms/AmbientOneTextureUnified { } } // do the lighting and bump mapping with parallax pass pass { illumination_stage per_light scene_blend add depth_write off // Vertex program reference vertex_program_ref Examples/OffsetMappingVP { param_named_auto lightPosition light_position_object_space 0 param_named_auto eyePosition camera_position_object_space param_named_auto worldViewProj worldviewproj_matrix } // Fragment program fragment_program_ref Examples/OffsetMappingFP { param_named_auto lightDiffuse light_diffuse_colour 0 param_named_auto lightSpecular light_specular_colour 0 // Parallax Height scale and bias param_named scaleBias float4 0.04 -0.02 1 0 } // Normal + height(alpha) map texture_unit { texture rockwall_NH.tga tex_coord_set 0 } // Base diffuse texture map texture_unit { texture rockwall.tga tex_coord_set 1 } } } // This is the preferred technique which uses both vertex and // fragment programs, supports coloured lights technique { // do the lighting and bump mapping with parallax pass pass { // Vertex program reference vertex_program_ref Examples/OffsetMappingVP { param_named_auto lightPosition light_position_object_space 0 param_named_auto eyePosition camera_position_object_space param_named_auto worldViewProj worldviewproj_matrix } // Fragment program fragment_program_ref Examples/OffsetMappingPS { param_indexed_auto 0 light_diffuse_colour 0 param_indexed_auto 1 light_specular_colour 0 // Parallax Height scale and bias // param_indexed 2 float4 0.04 -0.02 1 0 } // Normal + height(alpha) map texture_unit { texture rockwall_NH.tga tex_coord_set 0 } // Base diffuse texture map texture_unit { texture rockwall.tga tex_coord_set 1 } } } // Simple no-shader fallback technique { pass { // Base diffuse texture map texture_unit { texture rockwall.tga } } } } // Single-pass offset mapping with shadows vertex_program Examples/OffsetMappingIntegratedShadowsVPhlsl hlsl { source OffsetMapping.hlsl entry_point integratedshadows_vp target vs_2_0 } vertex_program Examples/OffsetMappingIntegratedShadowsVPglsl glsl { source OffsetMappingShadowsVp.glsl syntax glsl150 default_params { param_named_auto worldViewProj worldviewproj_matrix } } vertex_program Examples/OffsetMappingIntegratedShadowsVPglsles glsles { source OffsetMappingShadowsVp.glsles } // Single-pass offset mapping with shadows fragment_program Examples/OffsetMappingIntegratedShadowsFPhlsl hlsl { source OffsetMapping.hlsl entry_point integratedshadows_fp target ps_2_0 } fragment_program Examples/OffsetMappingIntegratedShadowsFPglsl glsl { source OffsetMappingShadowsFp.glsl syntax glsl150 default_params { // assign samplers as required by GLSL param_named normalHeightMap int 0 param_named diffuseMap int 1 param_named shadowMap1 int 2 param_named shadowMap2 int 3 } } fragment_program Examples/OffsetMappingIntegratedShadowsFPglsles glsles { source OffsetMappingShadowsFp.glsles default_params { // assign samplers as required by GLSL ES param_named normalHeightMap int 0 param_named diffuseMap int 1 param_named shadowMap1 int 2 param_named shadowMap2 int 3 } } // Single-pass offset mapping with shadows vertex_program Examples/OffsetMappingIntegratedShadowsVP unified { delegate Examples/OffsetMappingIntegratedShadowsVPhlsl delegate Examples/OffsetMappingIntegratedShadowsVPglsl delegate Examples/OffsetMappingIntegratedShadowsVPglsles } // Single-pass offset mapping with shadows fragment_program Examples/OffsetMappingIntegratedShadowsFP unified { delegate Examples/OffsetMappingIntegratedShadowsFPhlsl delegate Examples/OffsetMappingIntegratedShadowsFPglsl delegate Examples/OffsetMappingIntegratedShadowsFPglsles } material Examples/OffsetMapping/IntegratedShadows { technique { // do the lighting and bump mapping with parallax pass pass { // Vertex program reference vertex_program_ref Examples/OffsetMappingIntegratedShadowsVP { param_named_auto lightPosition light_position_object_space 0 param_named_auto eyePosition camera_position_object_space param_named_auto worldViewProj worldviewproj_matrix param_named_auto spotDirection light_direction_object_space 0 param_named_auto lightPosition1 light_position_object_space 1 param_named_auto spotDirection1 light_direction_object_space 1 // shadow texture projections param_named_auto worldMatrix world_matrix param_named_auto texViewProj1 texture_viewproj_matrix 0 param_named_auto texViewProj2 texture_viewproj_matrix 1 } // Fragment program fragment_program_ref Examples/OffsetMappingIntegratedShadowsFP { param_named_auto lightDiffuse light_diffuse_colour 0 param_named_auto spotParams spotlight_params 0 param_named_auto lightDiffuse1 light_diffuse_colour 1 param_named_auto spotParams1 spotlight_params 1 // Parallax Height scale and bias param_named scaleBias float4 0.04 -0.02 1 0 } // Normal + height(alpha) map texture_unit { texture rockwall_NH.tga tex_coord_set 0 } // Base diffuse texture map texture_unit { texture rockwall.tga tex_coord_set 1 } // shadowmap 1 texture_unit { content_type shadow } // shadowmap 2 texture_unit { content_type shadow } } } }