[英]Is OpenGL ES suitable for performing skeletal animations?
我必须为移动平台启动3D项目。 首先,我想概述主要目标 - 骨骼动画 。 至于解决方案,我正在考虑使用OpenGL ES和C ++。 所以问题是:
你可能已经得到了它 - 我还没有为移动平台编程。 因此,欢迎提出一些一般性建议。
是的,OpenGL ES 2.0可以很好地处理骨骼动画的顶点蒙皮。 OpenGL ES 1.1使用了一个没有着色器的固定功能管道,因此旧版API更难以实现这一点,但2.0增加了对着色器的支持。 OpenGL ES 2.0出现在所有出货的iOS设备上(iPhone 3G S和更新版本都支持它,包括iPad),以及几乎所有Android设备(我只能找到一些没有的低端手机)。 Windows Phone 7似乎不支持OpenGL ES,但我相信黑莓手机。
如果你对此感兴趣,我强烈推荐阅读Philip Rideout的书“ iPhone 3D Programming ”。 虽然标题中有“iPhone”,但他对本书中的几乎所有代码都使用通用C ++,因此它应该很好地转换到其他平台,并且应该易于理解。 他甚至在“优化”一章中有一节用于在OpenGL ES 2.0甚至1.1上执行顶点蒙皮的代码。 您可以在此处获取本书的示例代码,包括此蒙皮的演示。
iOS上通过Objective-C ++支持C ++ ,您可以在Objective-C中设置特定于平台的UI元素,然后在C ++中完成所有后端和渲染逻辑。 菲利普再次在他的书中做到了这一点,你可以在他的源代码示例应用程序中看到他如何构建它。 Imagination Technologies的人员还在他们的PowerVR SDK中设置了一些与平台无关的脚手架,有些人用它来快速在移动设备上进行3-D渲染和运行。 另外在该SDK中还有一些关于从OpenGL迁移到OpenGL ES以及在这些GPU上执行各种效果的优秀文档。
我听说有些人通过在CPU上执行转换来获得稍微好一点的顶点集(在iOS上可以使用Accelerate框架完成),但我认为对于较大的几何体,顶点着色器会快得多。 我在移动设备上使用的PowerVR GPU比你想象的要强大得多,特别是iPad 2中的新版GPU。
您需要使用Xcode IDE,使用其GCC或LLVM编译器来定位iOS设备,但我相信Android在这方面还有更多选择。
简而言之:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.