OpenGL如何在屏幕上一个固定的位置绘制文字
因为OpenGL中的glRasterPos2f(x,y)的两个参数是世界坐标系中的位置,一旦我移动摄像机视角,文字位图在屏幕中的位置也会跟着变化。好比:光栅化位置设置为g...
因为OpenGL中的glRasterPos2f(x, y)的两个参数是世界坐标系中的位置,一旦我移动摄像机视角,文字位图在屏幕中的位置也会跟着变化。
好比:光栅化位置设置为glRasterPos2f(5, 5);
然后摄像机从(-5, 5, 5)看原点时文字在屏幕的左侧;
摄像机从(-5, 5, -5)看原点时文字在屏幕的右侧。
我想让文字固定在屏幕左侧要怎么办,不论怎样移动摄像机视角? 展开
好比:光栅化位置设置为glRasterPos2f(5, 5);
然后摄像机从(-5, 5, 5)看原点时文字在屏幕的左侧;
摄像机从(-5, 5, -5)看原点时文字在屏幕的右侧。
我想让文字固定在屏幕左侧要怎么办,不论怎样移动摄像机视角? 展开
2个回答
展开全部
//先把投影矩阵设置成二维裁剪矩阵
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-5, 5, -5, 5);//裁剪范围(左, 右, 下, 上)如果不希望变形,裁剪范围要和窗口成比例
(如果像上面那样裁剪成正方形,在长方形的窗口里面渲染就会显得左右拉长了)
//然后回到模型视图矩阵模式
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//现在画的东西都是2D的,比如:
glBegin(GL_TRIANGLES);
glColor3f(255, 0, 0);
glVertex2f(-5, 0);
glVertex2f(-5, -5);
glVertex2f(0, -5);
glEnd();
//然后回到3D。将投影矩阵设置成3D的投影矩阵
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//视角角度,宽高比,近,远
gluPerspective(aspect, ratioWH, near, far);//将投影矩阵设置成3D的投影矩阵。也可以用glOrtho3D
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-5, 5, -5, 5);//裁剪范围(左, 右, 下, 上)如果不希望变形,裁剪范围要和窗口成比例
(如果像上面那样裁剪成正方形,在长方形的窗口里面渲染就会显得左右拉长了)
//然后回到模型视图矩阵模式
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//现在画的东西都是2D的,比如:
glBegin(GL_TRIANGLES);
glColor3f(255, 0, 0);
glVertex2f(-5, 0);
glVertex2f(-5, -5);
glVertex2f(0, -5);
glEnd();
//然后回到3D。将投影矩阵设置成3D的投影矩阵
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//视角角度,宽高比,近,远
gluPerspective(aspect, ratioWH, near, far);//将投影矩阵设置成3D的投影矩阵。也可以用glOrtho3D
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询