2012-05-23 87 views
1

我使用wglUseFontBitmaps()创建字体显示列表,然后glListBase,glCallLists在OpenGL中显示一些文本。
但glRotate()和glTranslate()函数不会影响文本的位置。 如何旋转文字或更改其位置?旋转和平移显示列表

+0

确保您不要在显示列表中加载标识矩阵或其他东西。 –

+0

我仅使用glRasterPos()设置初始位置 – slaviber

+0

您可能想尝试将文本渲染为离屏纹理,然后按照需要定位该纹理。尽管这有点牵扯,如果你是新手,可能需要付出很大的努力。 – Tim

回答

3

您无法转换OpenGL位图。期。您唯一可以在变形管道中移动的位置是使用glRasterPos设置的起始位置。

glRasterPos有效地发送由模型视图和投影转换的“顶点”的排序,但是影响视口位置仅仅是以下位图绘制的开始位置。

+1

使用wglUseFontOutlines()代替wglUseFontBitmaps(),现在我可以缩放和旋转文本,但现在使用正交矩阵进行镜像。我该如何解决这个问题? – slaviber

+0

@slaviber:可能你翻转了'gl [u] Ortho [2D]'的'bottom'和'top'参数。或者交换这两个,或者在用('glScalef(1,-1,1); draw_text();')绘制文本的模型视图矩阵的y方向上添加-1的比例。 – datenwolf