游戏开发论坛

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

2D和3D视角可以同时显示吗

[复制链接]

5

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2006-8-25 13:37:00 | 显示全部楼层 |阅读模式
我刚学习OPENGL  我想在一副图上即显示有三维视角效果的正方体  在其下方有可以显示2D效果的说明信息    我的代码如下  但始终不对   请各位高手指点一下   谢谢

        glViewport (0, 0, (GLsizei)w, (GLsizei)h);      
        glMatrixMode (GL_PROJECTION);                               
                glLoadIdentity ();                                               
                gluPerspective(90.0,w/h,0.5,100.0);                 
    glMatrixMode (GL_MODELVIEW);         
                glClear(GL_COLOR_BUFFER_BIT);
                glColor3f (1.0, 0.0, 1.0);
                glLoadIdentity ();         
                gluLookAt(0.0,4.0,4.0,0.0,0.0,0.0,0.0,2.0,0.0);
        glutWireCube(1.0);  
       
       
        glMatrixMode(GL_PROJECTION);
        glPushMatrix();
                glLoadIdentity();
                glOrtho(0.0, (GLsizei)w,0.0, (GLsizei)h,-1.0,1.0);       

        glMatrixMode(GL_MODELVIEW);   
                glLoadIdentity ();            
                glBegin(GL_LINE_LOOP);
                        glVertex2f(-1.0,1.0);
                        glVertex2f(1.0,1.0);
                        glVertex2f(1.0,-1.0);
                        glVertex2f(-1.0,-1.0);
                glEnd();       
        glMatrixMode(GL_PROJECTION);
        glPopMatrix();
        glMatrixMode(GL_MODELVIEW);


       
        glFlush();
        glutSwapBuffers();

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2006-8-25 16:37:00 | 显示全部楼层

Re:2D和3D视角可以同时显示吗

当然可以。 搜索下billboard opengl

29

主题

157

帖子

163

积分

注册会员

Rank: 2

积分
163
发表于 2006-8-26 14:10:00 | 显示全部楼层

Re:2D和3D视角可以同时显示吗

你作的效果有什么不对的吗?
其实不用转化投影矩阵也可以的.


  1. glViewport (0, 0, (GLsizei)w, (GLsizei)h);      
  2. glMatrixMode (GL_PROJECTION);
  3. glLoadIdentity ();
  4. gluPerspective(90.0,w/h,0.5,100.0);                 
  5. glMatrixMode (GL_MODELVIEW);   
  6. glClear(GL_COLOR_BUFFER_BIT);
  7. glColor3f (1.0f, 0.0f, 1.0f);
  8. glLoadIdentity ();   
  9. //设置视点     
  10. gluLookAt(0.0f, 4.0f, 4.0f, 0.0f, 0.0f, 0.0f, 0.0f, 2.0f, 0.0f);
  11. //绘制模型
  12. glutWireCube(1.0);  


  13. glPushMatrix();

  14. //清空矩阵,此时摄像机相当与位于世界坐标的原点, 指向z轴负轴
  15. glLoadIdentity ();
  16.       
  17. //0.5为gluPerspective(..)函数中near的值
  18. glTranslatef(0.0f, 0.0f, -0.5f);   

  19. //绘制说明信息   
  20. glBegin(GL_LINE_LOOP);
  21. glVertex3f(-1.0f, 1.0f, 0.0f);
  22. glVertex3f( 1.0f, 1.0f, 0.0f);
  23. glVertex3f( 1.0f,-1.0f, 0.0f);
  24. glVertex3f(-1.0f,-1.0f, 0.0f);
  25. glEnd();


  26. glPopMatrix();



  27. //这两个函数使用一个就可以了
  28. glFlush();   //单缓存时使用
  29. glutSwapBuffers();   //双缓存时使用

复制代码

5

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2006-8-26 20:01:00 | 显示全部楼层

Re:2D和3D视角可以同时显示吗

谢谢2位的指点   谢谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 04:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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