我试图找出一个简单的在OpenGL中绘制一些文本。我的研究表明这是一项相当复杂的任务。它涉及创建(或在运行时生成)字体图集纹理,然后为每个字母创建一个具有正确位置和纹理坐标的四边形。
我听说过一些关于 freetype 的好消息,但几乎没有发现如何让它在 iPhone 上运行,而且它似乎相当复杂。
那么是否有任何与人们一直在使用的 iPhone SDK 一起使用的 Objective-C 包装的 OpenGL 文本库?还是我只是在想这个,而我缺少一种更简单的方法?
最佳答案
一种方法是设置 UILabel,然后将其图层渲染为纹理。对此的间接途径是首先使用文本、字体等设置 UILabel,然后使用以下代码
UIGraphicsBeginImageContext(yourLabel.frame.size);
[yourLabel.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *layerImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
将 UILabel 捕获到 UIImage。然后,您可以使用 CrashLanding 项目中 Texture2D 类的 initWithImage: 构造函数将其转换为纹理。
它看起来像 initWithImage:在该示例中,将 UIImage 重新渲染到位图上下文并使用它来创建纹理。通过一些工作,您可以从该方法中提取相关代码并更改上述代码以将您的图层直接渲染到纹理中。
这样,在为纹理创建文本时,您可以获得 UILabel 的 Unicode 和字体支持。
关于cocoa-touch - iPhone SDK 有没有像样的 OpenGL 文本绘图库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/512258/