我想在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