当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 多纹理混合技术在地形渲染中用得很广泛,用来将非常不同的多个纹理(如石头和草)混合起来,看不出明显的边缘。
 

 

 ·texture wrapping mode     »显示摘要«
    摘要: 在进行纹理帖图时,图象会出现在物体表面的(u,v)位置上,而这些值在[0.0,1.0]范围内。但是,如果超出这个值域,会发生什么情况呢?这由纹理的映射函数来决定。在opengl中,这类映射函数称为“texture wrapping mode”;在d3d中,称为“texture addressing mode”。常见的有下面几种: 1. 重复(gl_......
 ·mfc架构下的directx8     »显示摘要«
    摘要: ......


在OpenGL中实现多纹理混合(Multi-texture Blending)

     多纹理混合技术在地形渲染中用得很广泛,用来将非常不同的多个纹理(如石头与草)混合起来,看不出明显的边缘.例如,你可以用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 );


...   下一页
    摘要:3 游戏屏幕  如果用户从主菜单中选择"new game",那么开始游戏并且显示游戏屏幕。游戏屏幕使用全屏画布(fullcanvas)。如果按下任何功能键,那么用户界面必须返回主菜单,并且应使游戏暂停。其他的按键对游戏是有效的。注意:游戏不应该在屏幕上创建任何功能键的标签。如果必须使用功能键标签,那么应用程序应该使用默认的canvas屏幕commands。示例代码没有解决诸如线程和线程安全等问题,......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE