游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2309|回复: 5

又是纹理错误,555

[复制链接]

5

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2005-5-8 14:22:00 | 显示全部楼层 |阅读模式
我在场景中画了3个方块,贴上纹理,没问题
我在最后一个方块上面做了下glTranslatef(0.0f,4.0f,0.0f);
往上移
然后
if(up)
        {
               
                glBegin(GL_LINES);
        glColor3f(1.0f,0.0f,0.0f);   
                glVertex3f(1.0f, 0.0f,0.0f);
            glColor3f(1.0f,0.0f,0.0f);          
                glVertex3f(-1.0f, 0.0f,0.0f);
                 glEnd();
                       
        }
就是在上面再画一条线
问题出现了,就是原来3个方块上面的纹理都没有了,都编程全黑图像,其实应该是说变色图像,原有的纹理都被破坏了,怎么会的,搞不懂,请教,谢谢

5

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2005-5-8 18:58:00 | 显示全部楼层

Re: 又是纹理错误,555

up 是表示u键被按下
help me,第一次接触opengl就要我做毕设,嗨~~

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2005-5-9 09:13:00 | 显示全部楼层

Re:又是纹理错误,555

你在画rectangle 的时候,glEnable(GL_TEXTURE_2D);在end的时候有没有glDisable(GL_TEXTURE_2D);,或者是你push的marix有没有pop掉,导致matrix被破坏了,
我猜的.呵呵,我也刚学

5

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2005-5-9 14:31:00 | 显示全部楼层

Re: 又是纹理错误,555

我把画图的程序发上来给大家看看

int DrawGLScene(GLvoid)                               
{
        glClear(GL_COLOR_BUFFER_BIT | L_DEPTH_BUFFER_BIT);        glLoadIdentity();                                        glEnable(GL_TEXTURE_2D);
        glTranslatef(-1.5f+xpos,0.0f,-10.0f+zpos);                                                                        glBindTexture(GL_TEXTURE_2D, texture[0]);
        glRotatef(rquad,0.0f,1.0f,0.0f);       
        glEnable(GL_BLEND);                                glBegin(GL_QUADS);                       
// Draw A Quad
// Front Face
        glTexCoord2f(0.0f, 0.0f);
                glVertex3f(-1.0f, -1.0f,  1.0f);
        glTexCoord2f(1.0f, 0.0f);
                glVertex3f( 1.0f, -1.0f,  1.0f);
                       glTexCoord2f(1.0f, 1.0f);
                glVertex3f( 1.0f,  1.0f,  1.0f);
                glTexCoord2f(0.0f, 1.0f);
                glVertex3f(-1.0f,  1.0f,  1.0f);
// Back Face
                glTexCoord2f(1.0f, 0.0f);
                glVertex3f(-1.0f, -1.0f, -1.0f);
                glTexCoord2f(1.0f, 1.0f);
                glVertex3f(-1.0f,  1.0f, -1.0f);
                glTexCoord2f(0.0f, 1.0f);
                glVertex3f( 1.0f,  1.0f, -1.0f);
                glTexCoord2f(0.0f, 0.0f);
                glVertex3f( 1.0f, -1.0f, -1.0f);
// Top Face
                glTexCoord2f(0.0f, 1.0f);
                glVertex3f(-1.0f,  1.0f, -1.0f);
                glTexCoord2f(0.0f, 0.0f);
                glVertex3f(-1.0f,  1.0f,  1.0f);
                       glTexCoord2f(1.0f, 0.0f);
                glVertex3f( 1.0f,  1.0f,  1.0f);
                glTexCoord2f(1.0f, 1.0f);
                glVertex3f( 1.0f,  1.0f, -1.0f);
// Bottom Face
                       glTexCoord2f(1.0f, 1.0f);
                glVertex3f(-1.0f, -1.0f, -1.0f);
        glTexCoord2f(0.0f, 1.0f);
                glVertex3f( 1.0f, -1.0f, -1.0f);
        glTexCoord2f(0.0f, 0.0f);
                glVertex3f( 1.0f, -1.0f,  1.0f);
        glTexCoord2f(1.0f, 0.0f);
                glVertex3f(-1.0f, -1.0f,  1.0f);
// Right face
        glTexCoord2f(1.0f, 0.0f);
                glVertex3f( 1.0f, -1.0f, -1.0f);
        glTexCoord2f(1.0f, 1.0f);
                glVertex3f( 1.0f,  1.0f, -1.0f);
        glTexCoord2f(0.0f, 1.0f);
                glVertex3f( 1.0f,  1.0f,  1.0f);
        glTexCoord2f(0.0f, 0.0f);
                glVertex3f( 1.0f, -1.0f,  1.0f);
// Left Face
        glTexCoord2f(0.0f, 0.0f);
                glVertex3f(-1.0f, -1.0f, -1.0f);
        glTexCoord2f(1.0f, 0.0f);
                glVertex3f(-1.0f, -1.0f,  1.0f);
        glTexCoord2f(1.0f, 1.0f);
                glVertex3f(-1.0f,  1.0f,  1.0f);
        glTexCoord2f(0.0f, 1.0f);
                glVertex3f(-1.0f,  1.0f, -1.0f);
        glEnd();       

        glDisable(GL_TEXTURE_2D);
        glTranslatef(0.0f,4.0f,0.0f);
        if(up)
        {
               
                glBegin(GL_LINES);
                                glColor3f(1.0f,0.0f,0.0f);   
                glVertex3f(1.0f, 0.0f,0.0f);
                        glColor3f(1.0f,0.0f,0.0f);          
                glVertex3f(-1.0f, 0.0f,0.0f);
                 glEnd();
                       
        }
       
        return TRUE;                               
}

其他的格式和nehe的教程类似,就是不断的调用这个函数来重绘
哪里错了??

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-5-9 15:57:00 | 显示全部楼层

Re:又是纹理错误,555

你的blending是怎么设的?

5

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2005-5-10 20:56:00 | 显示全部楼层

Re: 又是纹理错误,555

不好意思,这个应该没有blend,这个应该被注释掉,复制的时候没有注释掉
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 15:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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