2009-10-28 48 views
0

我有一个NSString被分解成一组字符。如何用iPhone OpenGLES绘制3D中的角色云?

我需要使这些设置字符的云和:

  • 字符必须被放置在3D
  • 字符必须具有随机旋转和缩放
  • 不同的字体可以使用

正确的方法是使用OpenGLES框架。请建议一些样本,例子或方向开始。

回答

1

将字符渲染为四边形上的纹理。然后你可以在3D中操纵它们以满足你心中的欲望...

请参阅:This question/answer了解更多详情。

+0

谢谢。你能分享一些小例子如何将一个角色渲染为四边形的纹理吗?由于我是这方面的新手,所以你的帮助将非常感激。 – sashaeve 2009-10-28 11:22:03

+0

可能还有其他方法可以做到这一点,但这种方式对我来说很有效:首先,你需要创建一个纹理图集(一个大的纹理),其中包含所有的字符。 http://blogs.agi.com/insight3d/wp-content/uploads/2008/08/textureatlas.png 然后,你需要编写一个算法,它将生成正确大小的四元组,并且具有正确的uv坐标显示这些字形。您可以使用像Freetype这样的库来获取这些数据。 听起来很复杂,但实际上并没有那么糟糕。 – 2009-10-28 11:25:07

2

你说OpenGL ES是“这样做的正确方法”,但我会建议看看Core Animation的这种任务。您可以轻松创建一系列UILabel,一个用于云中的每个字符,并为标签指定随机字体。您需要将这些UILabel放置在子视图中,并使用UILabel图层的位置和zPosition属性为它们分配三维位置。可以使用CATransform3DRotate()或CATransform3DScale()应用3D中的随机旋转和/或缩放比例。您可以对CALayers进行的3-D操作的示例可以在here找到。

使用Core Animation执行此任务将需要比纯OpenGL ES少得多的代码,因为您不必自己管理手动文本绘制,Core Animation可以为您处理所有3-D渲染。