如何缩放纹理(四边形对象)上的文本?

时间:2012-03-23 16:33:43

标签: java android math graphics opengl-es

通过创建一个Bitmap,在其上绘制文本并将其制作成纹理,我找到了一种在openGL中绘制文本的好方法。

我有screenCoordinates(320,~~ 480)和gameCoordinates(20,28),其中定义了四边形的尺寸。示例构造函数:GameObject(x, y, width, height, text)

要创建位图,我创建一个具有以下尺寸的Canvas:

// get width and height in px (p is a Paint() object)
    p.setTextSize(textSize * Main.getMainResources().getDisplayMetrics().density);
    final int width = (int) p.measureText(text);
    final int height = (int) (p.descent() + -p.ascent());

canvas.drawText(text, 0, -p.ascent(), p);

创建一个这样的位图,缩放到下一个2的幂,你就有了纹理位图。

然而问题是因为四边形的尺寸不适合位图(文本)尺寸,所以文字不是很平滑。我有可能用quad.setDimensions(width, height)更改四边形的尺寸,但是我必须给它的尺寸是多少,而且我也不应该担心文本的textSize(sp)画画?

这一切都是二维的,一些简单的数学可能会涉及到,但我应该如何获得正确的尺寸?

0 个答案:

没有答案