從去年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
謝謝大家!
祝大家工作愉快!