2010-09-11 61 views
4

我正在爲iOS編寫遊戲。它有一個遊戲地圖,我使用OpenGL來繪製它,因爲其他選項太慢了。我在地圖上有單位,用字母表示,一個la Dwarf Fortress。但是,在OpenGL中渲染文本。OpenGL-ES字體渲染(在iOS上)...完美檢查

我目前正在使用Texture2D的一個性能調整的突變體,它足夠原型,但它有各種問題,並且不會爲我產生漂亮的結果。

看來,這樣做的嘗試和真正的方法是生成一個「目錄」圖像文件,其中所有字母呈現在字體中,然後將這些圖像映射到紋理當您想要呈現它們時(cf 。here)。但是,我在地圖上放大和縮小了很多。再加上Retina Display plus iPad將需要多種分辨率。醜陋。

想到那裏肯定有更好的辦法,我檢出了FTGLES,它可以在iOS/OpenGLES上動態呈現TTF/OTF字體。這不是即插即用的。我已經摔跤了兩天,甚至接近工作,但我認爲我現在已經走上了金色的道路。所以...我瘋了嗎?我創造的方式比我應該爲自己做更多的工作嗎?

回答

3

是的,這太瘋狂了,爲自己創造了更多的工作。對於我的具體情況,Texture2D幾乎囊括了我需要的所有祕密。我決定取得Texture2D的所有權,學習它,並將其作爲我自己的。通過在一個更大的字體渲染(50分),然後按比例縮小,我得到真正的好成績在OpenGL:

alt text

請注意,我已經通過創建每個字母一個Texture2D對象,然後看這些了優化當我需要他們時。我可以通過收集我所有的紋理繪製和每種顏色的OpenGL繪製調用來進一步優化。

1

這是我用過的一個很好的紋理貼圖tutorial。顯然,這使用了OpenGL ES中無法做到的顯示列表和內容,但是轉換不應該太困難。您還可以查看一些不同的技術here。一種技巧是用臉部繪製每個角色。