2012-05-23 112 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