游戏开发论坛

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

关于纹理混合

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2007-6-26 09:56:00 | 显示全部楼层 |阅读模式
我做的纹理混合为什么只混合了前两个单元,后面的第三个单元混合不进去是为什么?
主要代码如下: 大家给点意见::
    glActiveTextureARB( GL_TEXTURE0_ARB );
    glEnable( GL_TEXTURE_2D );
    glBindTexture( GL_TEXTURE_2D, texture[0] );
    glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );

    glActiveTextureARB(GL_TEXTURE1_ARB );
    glEnable( GL_TEXTURE_2D );
    glBindTexture( GL_TEXTURE_2D, texture[1]);

    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 );

    glActiveTextureARB( GL_TEXTURE2_ARB );
    glEnable( GL_TEXTURE_2D );
    glBindTexture( GL_TEXTURE_2D, texture[2] );

        glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB,  GL_REPLACE );

    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_TEXTURE0_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); //GL_PRIMARY_COLOR_ARB
        glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_SRC_ALPHA );

        //在次加入绘图部分
        glTranslatef(-0.30f,-0.50f,-2.0f);
       
        glColor4f(1.0f,0.0f,0.0f,0.5);
        glBegin(GL_QUADS);
                glNormal3f(0.0,0.0,1.0f);
                glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0,0.0);
                glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0,0.0);
                glMultiTexCoord2fARB(GL_TEXTURE2_ARB,0.0,0.0);
                glVertex3f(0.0f,0.0f,0.0f);

                glNormal3f(0.0,0.0,1.0f);
                glMultiTexCoord2fARB(GL_TEXTURE0_ARB,0.0,1.0);
                glMultiTexCoord2fARB(GL_TEXTURE1_ARB,0.0,1.0);
                glMultiTexCoord2fARB(GL_TEXTURE2_ARB,0.0,1.0);
                glVertex3f(0.0f,1.0f,0.0f);

                glNormal3f(0.0,0.0,1.0f);
                glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0,1.0);
                glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0,1.0);
                glMultiTexCoord2fARB(GL_TEXTURE2_ARB,1.0,1.0);
                glVertex3f(1.0f,1.0f,0.0f);

                glNormal3f(0.0,0.0,1.0f);
                glMultiTexCoord2fARB(GL_TEXTURE0_ARB,1.0,0.0);
                glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0,0.0);
                glMultiTexCoord2fARB(GL_TEXTURE2_ARB,1.0,0.0);
                glVertex3f(1.0f,0.0f,0.0f);
        glEnd();

显卡有8个纹理单元

4

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2007-6-27 11:05:00 | 显示全部楼层

Re:关于纹理混合

关注

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2007-6-27 12:01:00 | 显示全部楼层

Re:关于纹理混合

显卡不支持吧?(比如MX系列)

55

主题

331

帖子

337

积分

中级会员

Rank: 3Rank: 3

积分
337
发表于 2007-7-3 12:08:00 | 显示全部楼层

Re:关于纹理混合

用 shader 省心.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 23:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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