opengl 文字
场景:Opengl 文字展示
Opengl 文字显示
我在MFC中新建了一个对话框,然后在框中话图,现在我想在对话框里面的的某一个固定位置显示一个数字,我用了以下代码: wglUseFontBitmaps(wglGetCurrentDC(),0,256,1000);
glListBase(1000);
CString str;
str.Format("%f",10.0);
glColor3f(1.0,0.0,0.0);
glRasterPos2f(0.0,1.0);
glCallLists(6,GL_UNSIGNED_BYTE,str);
但是现在有一个问题就是,由于我的图片是可以转动的,所以当我的图片转动,显示的数字也在转动。我的目的是要显示的数字固定。哪位大神知道帮帮忙哦!
------解决方案--------------------
方法很简单,把当前投影矩阵取出来,求逆,设定文字位置 显示
不过这个代码你用不了
CoordinateMotionMatrix 把Z轴和Y轴转到和当前投影(Camera)的视点方向及Up方向一致 就可以跟着转了 Position4D(-1000,0,1000) 是准备放置的位置
Opengl 文字显示
我在MFC中新建了一个对话框,然后在框中话图,现在我想在对话框里面的的某一个固定位置显示一个数字,我用了以下代码: wglUseFontBitmaps(wglGetCurrentDC(),0,256,1000);
glListBase(1000);
CString str;
str.Format("%f",10.0);
glColor3f(1.0,0.0,0.0);
glRasterPos2f(0.0,1.0);
glCallLists(6,GL_UNSIGNED_BYTE,str);
但是现在有一个问题就是,由于我的图片是可以转动的,所以当我的图片转动,显示的数字也在转动。我的目的是要显示的数字固定。哪位大神知道帮帮忙哦!
opengl ,文字显示, MFC
------解决方案--------------------
方法很简单,把当前投影矩阵取出来,求逆,设定文字位置 显示
void SWLayoutRenderingContext::render()
{
CCamera* cam = this->m_pGL->getStage()->getCamera();
GCMatrix4D m = CoordinateMotionMatrix(Position4D(),Vector4D(0,0,1),Vector4D(0,1,0)
,Position4D(-1000,0,1000),!(*cam->getView2()),*cam->getViewUp());
m.getV16C(GL_MATRIX_BUFFER);
glPushMatrix();
glMultMatrixd(GL_MATRIX_BUFFER);
for(int i=0;i<CONTENT.GetLength();i++)
glutStrokeCharacter(GLUT_STROKE_ROMAN, CHARACTER_BUFFER[i]);
glPopMatrix();
}
不过这个代码你用不了
CoordinateMotionMatrix 把Z轴和Y轴转到和当前投影(Camera)的视点方向及Up方向一致 就可以跟着转了 Position4D(-1000,0,1000) 是准备放置的位置