多纹理混合技术在地形渲染中用得很广泛,用来将非常不同的多个纹理(如石头与草)混合起来,看不出明显的边缘.例如,你可以用3个纹理(石头.草与沙子)来渲染一座山,在山的底部用草与沙子来混合.
【程序编程相关:着色器和效果——3.3使用像素着色器的步】 【推荐阅读:3D编程学习之糊言乱语一.】 在opengl中通过arb_multitexture与arb_texture_env_combine扩展来实现多纹理混合.分为以下几个步骤: 【扩展信息:小团队游戏开发的阶段划分】 1. 计算3个纹理各自的贡献,并将它们编码进顶点的颜色中,这样颜色的rgb部分控制纹理阶段0与1间的插值,颜色的alpha控制纹理阶段1与2间的插值. 2. 使用gl_arb_multitexture将3个纹理同时应用到物体表面. 3. 将第一个纹理设为纹理阶段0. 4. 在纹理阶段1,使用gl_interpolate_arb在纹理阶段0的输出(第一个纹理)与阶段1的纹理之间用gl_src_color(颜色的rgb部分)进行线性插值. 5. 在纹理阶段2,使用gl_interpolate_arb在纹理阶段1的输出(第一个纹理与第二个纹理的混合体)与阶段2的纹理之间用gl_src_color(颜色的alpha部分)进行线性插值. 典型的代码为: gltexenvi( gl_texture_env, gl_texture_env_mode, gl_combine_arb ); gltexenvi( gl_texture_env, gl_combine_rgb_arb, gl_interpolate_arb );... 下一页