游戏开发论坛

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

OpenGL中的二,三维切换问题

[复制链接]

1

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2010-8-7 10:07:00 | 显示全部楼层 |阅读模式
在OpenGL中我开始先做了一个界面 未开启3D效果,UI坐标的范围是从-1.0f 至 1.0f之后切入了另一个3D界面里面采用三维的坐标之后我想切换回原来的2D界面但是原来的UI坐标全部无效了,我经过测试发现主要是因为3D中加入了一个语句gluPerspective来定义3D的投影,所以UI的坐标就全部变化了,请问有没办法恢复原来的坐标或者暂时关闭那个投影就像开启/关闭深度测试那样的语句glEnable(GL_DEPTH_TEST);和glDisable(GL_DEPTH_TEST);

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-8-7 17:53:00 | 显示全部楼层

Re:OpenGL中的二,三维切换问题

GL_DEPTH_TEST和这个没有关系的

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-8-7 17:55:00 | 显示全部楼层

Re:OpenGL中的二,三维切换问题

void Renderer::enter2DMode(GLint winWidth, GLint winHeight)
{
  Tuple4i  viewport;

  if(winWidth <= 0 || winHeight <= 0)
  {
    glGetIntegerv(GL_VIEWPORT, viewport);
    winWidth  = viewport.z;
    winHeight = viewport.w;
  }

  glMatrixMode(GL_MODELVIEW);
  glPushMatrix();
  glLoadIdentity();
  glMatrixMode(GL_PROJECTION);
  glPushMatrix();
  glLoadIdentity();
  gluOrtho2D(0, winWidth, winHeight, 0);
  glDisable(GL_DEPTH_TEST);
}
void Renderer::exit2DMode()
{
  glMatrixMode(GL_PROJECTION);
  glPopMatrix();
  glMatrixMode(GL_MODELVIEW);
  glPopMatrix();
  glEnable(GL_DEPTH_TEST);
}

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2010-8-8 21:40:00 | 显示全部楼层

Re:OpenGL中的二,三维切换问题

gluPerspective()
这里渲染游戏画面()

glOrtho()
这里渲染UI()

谢谢我吧,楼主
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 02:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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