游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1626|回复: 3

ARB_texture_env_combine 混合扩展

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2006-11-29 21:30:00 | 显示全部楼层 |阅读模式
   使用ARB_texture_env_combine  进行纹理混合可以将不同的纹理按不同的比例混合在一起,比如你可以用3个纹理(石头、草和沙子)来渲染一座山,在上体的不同部位,设定这三种纹理的不同比例,可以达到很逼真的效果.
  这个效果真的很神奇哦!!!!  可是我搞不懂那 一大串的 glTexEnvi  到底在干些什么!
   我从网上搜索到如下的代码
典型的代码为:
    glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB );
    glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_INTERPOLATE_ARB );
    glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB );//前面的纹理单元
    glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR );
    glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE );//当前的纹理
    glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR );
    glTexEnvi( GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_PRIMARY_COLOR_ARB);//基颜色
    glTexEnvi( GL_TEXTURE_ENV,GL_OPERAND2_RGB_ARB, GL_SRC_COLOR );//或GL_SRC_ALPHA
   哪位能帮忙解释一下这些函数到底干了什么? [em6] [em7]

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-30 12:59:00 | 显示全部楼层

Re:ARB_texture_env_combine 混合扩展

有了GLSL后想怎么样就怎么样混合

21

主题

230

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
发表于 2006-12-1 18:11:00 | 显示全部楼层

Re:ARB_texture_env_combine 混合扩展

设置材质混合。和D3D的 材质的stage概念差不多。
就是对材质的操作。可以同时设置多个材质,然后这些参数设置如果混合这些材质。
固定管道里面现在的显卡,NV的能做4个材质,8个操作。ATI的可以8个材质,8个操作。
操作就相当插值,那些。和ALPHA混合对应的。

参见扩展:

ati卡:
crossbar
texture_env_combine
NV卡:
texture_env_combine4

我想如果你完全不考虑老显卡,用SHADER做更简单。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-12-1 19:07:00 | 显示全部楼层

Re:ARB_texture_env_combine 混合扩展

完全没有必要考虑非shader了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 00:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表