Ale*_*aev 5 c++ mobile opengl-es skeletal-animation
我必须为移动平台启动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上执行顶点蒙皮的代码.您可以在此处获取本书的示例代码,包括此蒙皮的演示.
C++是通过客观-C++支持iOS,在那里你可以设置在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在这方面还有更多选择.
| 归档时间: |
|
| 查看次数: |
3186 次 |
| 最近记录: |