从去年11月份起,我开始了陆陆续续的进行cocos3d的C++版本的改写,现已初见成效,全部将cocos3d的OC代码改写成了C++, 可以正常在Android和Windows上运行,上周正式发布了第一个版本,上传到了GitHub上,喜欢的朋友可以点击链接访问。
Cocos3d-x基于cocos2d-x 2.x 编写,利用cocos2d的跨平台优势,单独封装了一个3D显示层, 2D,3D互不影响。
引擎效果展示
首先展示下引擎的效果,其实在我的个人主页上可以看到,这里再给大家分享一下,
1. 带有骨骼动画的人物模型显示:骨骼动画使用cocos3d自身支持的pod格式,本人直接使用,其实可以加入更多的模型格式的支持,这个将在后续版本中陆续加入
(图1)
2. Render To Target:可以渲染到2D纹理上也可以渲染到Cubemap上,下图是显示效果
(图2)
(图3)
图2中展示了将场景中的奔跑的人物模型实时的渲染到一张2D纹理,并且在电视模型上显示
图3展示了一茶壶为中心的六个方向的场景分别到cubemap的六个面上。
3. 3D 静态mesh的生成与加载显示:与人物模型类似,目前只支持pod静态模型的显示显示效果如下图(图4)
(图4)
4. Billboard:理论上可以将任意的Cocos2d-x中的可显示的Node作为Billboard的显示目标在3D场景中显示,下图(图5)展示了将2D粒子系统实现的太阳作为Billboard显示在3D场景中
(图5)
5. 粒子系统:粒子系统使用的点精灵实现的,利用了gl_Point, 本人还是赞同cocos2d-x的做法,使用矩形纹理做点精灵。这个在后续版本中改进吧,暂时没有截图。
当然,引擎中不止这些,光照系统,阴影效果都有,这里不做一一介绍,感兴趣的朋友可以下载并运行看一下。
目前引擎遇到的两个主要问题
1. 部分机型无法显示3D骨骼动画模型,这是由于android的碎片化和引擎自身的shader复杂度过高导致的,这个暂时没解决,想到一个解决方案是需要适当的降低模型的显示效果,可以去掉光照,降低骨骼数量
2. 粒子系统部分android上无法正常显示,部分Windows上也会出现。
引擎目前是我一个人在写,诚邀喜欢3D引擎的技术大神加入共同编写Cocos3d-x引擎。
有意者可以邮件给我[email protected],也可以加我微信:michaelgamedev
最后欢迎大家加入Cocos3D-x技术交流QQ群进行讨论共同进步:140525023
谢谢大家!
祝大家工作愉快!