您的位置:首页 > 移动开发 > Objective-C

shader实现凹凸效果

2012-09-14 19:17 429 查看
转自:http://blog.csdn.net/pizi0475/article/details/5389449

材质用的是这个文件中的
ogrenew/Samples/Media/materials/scripts/OffsetMapping.material 

多个technique,硬件不支持牛B的效果还有最后的technique来垫底

material Examples/OffsetMapping/Specular 



  // 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/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

         } 

      }

   }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shader object matrix float