Author Archive for Bill Hollings

Updated cocos3d – a 3D extension for cocos2d

cocos3d 'hello, world' example

A retina screenshot from the cocos3d Mashup Demo, insanely overloaded with mesh particles, text labels, animated robots, skinned hammers and running characters!

Update [2012-11-13]:

I’m pleased to announce that cocos3d 0.7.2 has been released.

This release adds heterogeneous 3D mesh particles, enhanced UIViewController integration, ray-casting enhancements, simplified parametric vertex array allocation and management, performance and memory usage improvements, enhanced logging, and detailed GL error tracing.

Features added in this 0.7.2 release include:

  • Added mesh particles as a type of particle system.
    • Particles can now be constructed from any template mesh, (sphere’s, boxes, planes, POD models, etc).
    • A single emitter can support particles constructed from different template meshes.
    • Mesh particles can individually move, rotate and scale in three dimensions.
    • Particles can be added manually to an emitter, effectively creating a generic mesh batching system.
    • All mesh particle vertices are manipulated in main memory and submitted to the GL engine in a single GL call.
  • Improved integration with UIView and UIViewController:
    • New CC3UIViewController class supports auto-rotation of the 3D/2D scene to the device orientation using standard UIKit auto-rotation.
    • Both iOS6 and pre-iOS6 rotation mechanisms are supported.
    • The CC3UIViewController loadView method now creates an appropriate CC3EAGLView, removing the need to create the view outside the controller in the AppDelegate.
  • Added the ability to determine the individual mesh faces, and the exact mesh location, intersected by a ray (for example from a touch).
  • Added the vertexContentTypes property to CC3MeshNodeCC3Mesh to simplify the creation of vertex arrays within a mesh. Parametric meshes (spheres, cones boxes, planes, etc.) can now be created with any type of vertex content.
  • Added several new parametric mesh population methods, including parametric cones and invisible touch-boxes.
  • Added support for bitmapped text labels as a 3D mesh.
  • Added additional camera movement and framing methods.
  • Added a build setting to provide the ability to trace GL errors to the exact GL call that triggered the error.
  • Automatic handling of textures with pre-multiplied alpha channels.
  • Memory and performance improvements including the use of minimal matrices, removal of many redundant GL calls, and the use of bitfields for most BOOLs.

Find out what’s new here.

cocos3d is a significant extension to cocos2d 1.x that adds a full 3D modelling space, including 3D mesh models, perspective projection cameras, materials, and lighting. With cocos3d, you can populate your world with 3D models exported from 3D editors such as Blender, 3ds Max or Cheetah3D, combined with models you create dynamically in your Objective-C code.

Integration with cocos2d 1.x is seamless. Rendering of all 3D model objects occurs within a special cocos2d layer, which fits seamlessly into the cocos2d node hierarchy, allowing 2D nodes such as controls, labels, and health bars to be drawn under, over, or beside 3D model objects. With this design, 2D objects, 3D objects, and sound can interact with each other to create a rich, synchronized audio-visual experience.

Like cocos2d, cocos3d is written entirely in Objective-C, and many of your favourite cocos2d paradigms, such as CCActions, are available for 3D objects. And like cocos2d, it is distributed for free under an MIT license.

Continue reading ‘Updated cocos3d – a 3D extension for cocos2d’




Social Widgets powered by AB-WebLog.com.