我想在opengl ES中顯示一些文字。我有一個512 * 512的字體紋理(紋理圖集),這裏所有的字母都是32 * 32像素。Android opengl-es快速呈現文字的方式
我的文字長度約爲400個字符。
我的算法
opengl.setClearTransparentBGEnabled();
float y2=0;
float j =0;
for (int i=0; i<text.length(); i++) {
int ch =(int)text.charAt(i);
float x2=((float)j*16*scale/50);
j++;
if ((text.charAt(i)+"").equals("\n")) {
y2+=(16*scale*2)/50;
j=0;
x2=0;
}
opengl.saveMatrix();
Sprites.selectVertex("font"+name)
.setSprite(ch)
.translate(x-x2, y+y2, -9)
.scale(scale, scale, scale)
.rotate(90, 0, 0, 1)
.draw(true);
opengl.loadMatrix();
}
opengl.setClearTransparentBGDisabled();
我唯一probleme,這種方法是很慢的:在這之後,我得到15-20 FPS。
什麼是動態渲染opengl-es文本的最佳方式?
我想使用ttf文件,那麼在我的opengl es應用程序(我知道2d api的drawtext方法)中使用它的方式是什麼? – lacas 2011-02-11 18:12:09