Why are you here??
Visit the list of releases on the new, shinier, and vastly improved Cocos3D website, instead!!
[bw_floater]
[bw_download title=”Download 0.7.2″]
[download id=”19″]
[/bw_download]
[/bw_floater]
cocos3d 0.7.2
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 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.
- Particles can now be constructed from any template mesh, (sphere’s, boxes, planes,
- Improved integration with
UIView
andUIViewController
:- New
CC3UIViewController
class supports auto-rotation of the 3D/2D scene to the device orientation using standardUIKit
auto-rotation. - Both iOS6 and pre-iOS6 rotation mechanisms are supported.
- The
CC3UIViewController
loadView
method now creates an appropriateCC3EAGLView
, removing the need to create the view outside the controller in theAppDelegate
.
- New
- 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 toCC3MeshNode
&CC3Mesh
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 exactGL
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 mostBOOL
s.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback. For more complete and detailed information on what’s new in this release, we encourage you to read the CHANGELOG
document in thecocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.7.1″]
[download id=”18″]
[/bw_download]
[/bw_floater]
cocos3d 0.7.1
This release adds explicit support for Gesture Recognizers and includes minor enhancements and fixes to the recent significant cocos3d 0.7.0 release.
Features added in this release include:
- Added explicit support for Gesture Recognizers, including mapping gestures to 3D transforms and coordinates.
- Invisible nodes can now cast shadows, allowing invisible lower-polygon models to be used to create shadows of visible high-polygon models.
- Added backward compatibility with legacy LLVM GCC 4.2 compiler.
- Fixed memory leaks when destroying scenes containing shadows and skinned meshes.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback. For more complete and detailed information on what’s new in this release, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.7.0″]
[download id=”17″]
[/bw_download]
[/bw_floater]
cocos3d 0.7.0
This release adds automatic shadowing, collision detection, ray-tracing, and enhanced texture management.
Features added in this release include:
- Automatic shadowing using shadow volumes.
- Enhancements to texture management:
- Alignment of textures with meshes, for both NPOT and iOS-inverted textures is now completely automatic.
- Texture mipmaps generation is automatic.
- Ray-casting:
- Collect nodes intersected by a ray in order of distance from the start of the ray.
- Locate the local intersection of a ray with a node.
- Simple collision detection between nodes.
- Any node can now be targetted towards a direction, location, or other node.
- New CCActions include MoveForwardBy, MoveUpBy, RotateByAngleAroundAxis
- Bounding volumes of nodes can now be made visible during development.
- Parametric mesh creation is now simplified, and parametric sphere and disk meshes now available.
- Individual mesh faces can be retrieved by index.
- Support for decals.
- Support for stencil buffers.
- Support for automatic renormalizing of rotation matrices.
- Support for general notification callbacks on node transformations.
- CC3World renamed to CC3Scene, to clarify the purpose of that class.
- CC3Scene callbacks available during opening and closing of a scene.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback. For more complete and detailed information on what’s new in this release, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.6.5″]
[download id=”16″]
[/bw_download]
[/bw_floater]
cocos3d 0.6.5
This is a patch release that fixes an error in the soft-body vertex skinning POD loading mechanism that was introduced in cocos3d 0.6.3. This issue affected some large and complex POD files, and caused some regular mesh nodes to be loaded as skinned nodes, which resulted in them sometimes not being rendered.
This issue affects all POD files, including those that do not contain soft-body nodes or use vertex skinning.
If you are using cocos3d 0.6.3 or cocos3d 0.6.4, it is strongly recommended that you upgrade to the 0.6.5 version.
[bw_floater]
[bw_download title=”Download 0.6.4″]
[download id=”15″]
[/bw_download]
[/bw_floater]
cocos3d 0.6.4
This is a patch release that fixes an error in the new matrix inversion algorithm that was introduced in cocos3d 0.6.3. This issue affected some vertex skinning situations, and other operations that relied on accurate matrix inversion. If you are using cocos3d 0.6.3, it is strongly recommended that you upgrade to the 0.6.4 version.
In addition, this release adds the following features:
- Fixed error in matrix inversion calculation algorithm that affected some vertex skinning situations.
- Added support for
iOS
5.0
andXcode
4.2
. - Upgraded PowerVR POD library to version 2.09.
- Removed unnecessary PowerVR POD library files.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback. For more complete and detailed information on what’s new in this release, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.6.3″]
[download id=”14″]
[/bw_download]
[/bw_floater]
cocos3d 0.6.3
This release adds vertex skinning (aka bone rigging), easy configuration of repeating textures, and support for cocos2d 1.1.
Features added in this release include:
- Added support for vertex skinning, also often referred to as bone rigging, allowing soft-body meshes to be realistically deformed based on the movement of an underlying skeleton constructed of bones and joints:
- Soft-body models can be loaded from POD files, or constructed programmatically.
- Skeleton bones can be controlled with animation data, or programmatically.
- Special thanks to cocos3d user Chris Myers, who took the initiative to add vertex skinning to cocos3d, and provided much of the code.
- Added easy control of repeating textures on a
CC3MeshNode
. - Added support for cocos2d 1.1.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback. For more complete and detailed information on what’s new in this release, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.6.2″]
[download id=”13″]
[/bw_download]
[/bw_floater]
cocos3d 0.6.2
This release adds several new features, including fully-3D point particles, CC3Layer
tiling, textured box nodes, and the ability to rotate a node incrementally and smoothly.
Features added in this release include:
- Added support for 3D point particle generators:
– Individual particles can have location, color and normal (to interact with light). Normals are automatically calculated.
– Emitter nozzle can be attached to any node that is moving and rotating.
– Added particle hose example toCC3DemoMashUp
. Activate by touching the robot arm. - Added support for textured boxes and cubes.
- Added ability to change the location and rotation of a node by a specific amount, instead of setting the final state:
– Added CC3NodetranslateBy:
,rotateBy:
,rotateByQuaternion:
, androtateByAngle:aroundAxis:
methods. - Added support for tiling and overlaying multiple
CC3Layer
/CCWorld
pairs.
– AddedCC3Demo3DTiles
demo app to demonstrate these features
– Performance improvements, particularly around switching between cocos2d and cocos3d worlds, facilitating the ability to place multipleCC3World
s on the screen at once. CC3Light
now makes it easy to use many lights across multipleCC3World
s without breakingOpenGL
limit on the number of lights.- Added support for alpha testing when working with many overlapping translucent or transparent objects and textures.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback. For more complete and detailed information on what’s new in this release, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.6.1″]
[download id=”12″]
[/bw_download]
[/bw_floater]
cocos3d 0.6.1
The focus of this release was to continue to refine 3D behaviour and performance based on user feedback.
Features added in this release include:
- Added several new diagnostic features to help developers:
- Toggle a visible descriptive text identifier on any node.
- Toggle a wireframe box surrounding any node.
- Auto-move camera to view entire scene, or focus on a single node.
- Compiler switch to log details of
POD
file contents loading. - Easily log the node structure of a node assembly or the entire world.
CC3Billboard
s drawing cocos2d 2D nodes can now be fully embedded in the 3D world, and can be:- Occluded by other 3D nodes.
- Rotated to face away from the camera.
- Selected by touch events.
- Added ability to rotate a node around an arbitrary axis.
- Added enhancements to
CC3TargettingNode
tracking:- Targetting nodes can be set to automatically find and track the camera.
- Added convenience methods to allow nodes to be quickly wrapped in a targetting node.
- Targettting nodes now track correctly if either the target or the targetting node moves.
- Added support for using texture atlases & sprite-sheets with 3D meshes.
- Simplified retention of vertex data in main memory. Added methods to
CC3Node
to identify which vertex data should be retained in main memory. - Added vertex data access methods to simplify direct manipulation of vertex data.
- Added userData property to node to allow application to add arbitrary data to nodes without having to create subclasses.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback. For more complete and detailed information on what’s new in this release, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.6 Sneak Peek”]
[download id=”10″]
[/bw_download]
[/bw_floater]
cocos3d 0.6 Sneak Peek
An early version of 0.6 is now available. It contains all the features planned for version 0.6, with the exception of a full 3D particle system, which is still under development. For that reason, we are calling this release the 0.6 Sneak Peek (0.6.0-sp). The full version of 0.6, including 3D particles, will be released within the next few weeks.
This sneak peek release is not an alpha or beta release. It is the full 0.6 release, minus the 3D particles.
Features added in this release include:
- Multi-texturing, using multiple texture-units to combine textures on a material in flexible, customized fashion, permitting sophisticated surface effects.
- DOT3 bump-map texturing, for increased surface detail on models without having to increase the number of vertices.
CC3Billboard
now supports cocos2d 2D particle systems, including those created with Particle Designer, plus any other 2DCCNodes
that are undergoing scheduled updates.- Any 3D node can be added as a child to an instance of
CC3TargettingNode
to make that node face the camera (halo objects), or another node, and automatically track that node as it moves. The axis of rotation can be restricted to a single axis to allow the node to rotate to face the camera or another node, but only along one axis. CC3TargettingNodes
will now automatically track their targets once theshouldTrackTarget
property is set to YES. The trackTarget method no longer needs to be invoked during udpates.- Lighting enhancements include spotlights and attenuation with distance.
- Fog effects can be applied to the world.
- Node picking now works when multi-sampling anti-aliasing is active.
CC3Layer
can now be dynamically moved (usingCCActions
for example) if it is smaller than the full-screen, allowing your whole 3D world to move around within a cocos2D application.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback, and there have been several small changes to the API
with this release. For more complete and detailed information on what’s new in this release, including changes to the API
, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.5.4″]
[download id=”9″]
[/bw_download]
[/bw_floater]
cocos3d 0.5.4
The focus of this release was to continue to refine basic 3D behaviour and performance based on user feedback after the initial releases, including adding support for parallel/isometric/orthographic projection, and rendering the backfaces of a mesh.
CC3Camera
now supports aisUsingParallelProjection
property parallel/isometric/orthographic projection in addition to the default perspective projection.- Using the
shouldCullBackFaces
andshouldCullFrontFaces
properties ofCC3Node
, you can choose whether a mesh should display backfaces in addition to, or instead of, the usual frontfaces. - Using the
retainVertexLocations
method, you can instruct a particularCC3Node
to retain its vertex locations in application memory whenreleaseRedundantData
is invoked, so that the vertex data is available for use in calculations, even after the data has been copied to GL buffer memory. CC3NodeArrayZOrderSequencer
now supports sorting nodes for drawing based on the Z-distance as measured straight-out from the camera, ignoring distance contributed from a node being off to the side of the center of the camera’s view. This is selectable using theshouldUseOnlyForwardDistance
property, and is useful for planar cell animation using large textures that are perpendicular to the camera. The existing ability of sorting based on a straight-line 3D distance between the camera and the node is also available.- To simplify changing the active
CC3World
instance during 3D scene changes, theAppDelegate
class of the hello, world templates, plus theCC3DemoMashUp
andCC3Performance
demo apps, no longer keep track of a CC3World instance. Swapping the CC3World instance is now accomplished by simply setting the cc3World property of your customizedCC3Layer
, and it is left to the application to manage caches of differentCC3World
instances, and memory consumption, in a way that is most convenient for the application. - In order to create a consistent and easy standard, the
CC3Camera
nearClippingPlane
now defaults to 1.0, and thefarClippingPlane
now defaults to 1000.0.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback, and there have been several small changes to the API
with this release. For more complete and detailed information on what’s new in this release, including changes to the API
, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.5.3″]
[download id=”8″]
[/bw_download]
[/bw_floater]
cocos3d 0.5.3
The focus of this release was to continue to refine basic 3D behaviour and performance based on user feedback after the initial releases, including adding an Xcode
4
project template, performance improvements, a performance measurement API, and a performance-measuring demo application.
- An
Xcode
4
cocos3d project template in now included (TheXcode
4
project template requires an additional project creation step. See theREADME!
file in yourXcode
4
project after creating it from the project template). - Added support for positioning objects by 2D touch point location. You can extrapolate a touch point on the screen to a ray in the 3D world, and a specific 3D location on an arbitrary plane. Added
CC3Camera
methodsunprojectPoint:
andunprojectPoint:ontoPlane:
to support this feature. - Added method
addAndLocalizeChild:
toCC3Node
to add objects of known size and rotation to a node, without having those properties immediately affected by the transform of the parent object. This is useful when adding an object of known location, rotation and scale to another object that is rotated and scaled arbitrarily, and retaining the known location, rotation and scale of the added child. - Performance improvements.
CC3World
now optionally collects application drawing and updating performance statistics in theperformanceStatistics
property.- New demo project
CC3Performance
now available for developers to explore cocos3d performance characteristics with various types of 3D models. - Changing the scale of
CC3Camera
(through either thescale
oruniformScale
properties) now updates theprojectionMatrix
automatically. - Added
CC3BoxNode
as subclass ofCC3MeshNode
to simplify the creation of cube and box meshes. - Added line population methods to
CC3LineNode
. - Setting the
CC3Material
isOpaque
property toNO
now checks for pre-multiplied alpha in the texture and sets thesourceBlend
property accordingly. - API docs now includes a collaboration diagram for each class, plus an overall library class hierarchy diagram.
- The hello, world project template now uses a mesh with fewer vertices to improve performance on older devices.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback, and there have been several small changes to the API
with this release. For more complete and detailed information on what’s new in this release, including changes to the API
, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.5.2″]
[download id=”7″]
[/bw_download]
[/bw_floater]
cocos3d 0.5.2
The focus of this release was to continue to refine basic 3D behaviour based on user feedback after the initial release, including adding support for the high-resolution Retina display, automatic drawing of translucent 3D objects in Z-order, and explicit support for drawing lines and planes.
- The 3D world now displays correctly on a high-resolution Retina display.
- Added
CC3NodeArrayZOrderSequencer
to allow the drawing of translucent objects to be sorted by Z-order, using the center of the node mesh, from farthest to nearest.CC3World
‘s defaultdrawingSequencer
now draws opaque nodes first, then translucent nodes by Z-order. CC3LineNode
andCC3PlaneNode
classes added as subclasses ofCC3MeshNode
to simplify the creation and drawing of lines and planes using vertex arrays. Added methodpopulateAsWireBox:withPureColor:
toCC3MeshNode
as a convenience method for easily creating wire-frame boxes.- Node opacity control has been simplified. Changing the opacity of a
CC3Material
(or any node holding it) using the<CCRGBAProtocol>
opacity
property now automatically changes thesourceBlend
anddestinationBlend
properties to make use of the new opacity. TheisOpaque
property ofCC3Material
andCC3MeshNode
now takes into consideration the alpha component ofambientColor
anddiffuseColor
properties as well as thesourceBlend
anddestinationBlend
properties. - Meshes can now be drawn in a pure, solid color that is not affected by lighting conditions.
- Added features to the
CC3DemoMashUp
example to demonstrate some of the changes above:- Touching either the textured or rainbow teapot will toggle the display of a wire-frame of the teapot’s bounding box.
- Touching the beach ball toggles the it between opacity and translucency.
- The translucent beach ball now correctly displays the robot arm behind it, and no longer flickers during touch event processing when it has 3D objects behind it (not just the empty sky).
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback, and there have been several small changes to the API
with this release. For more complete and detailed information on what’s new in this release, including changes to the API
, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.5.1-beta”]
[download id=”6″]
[/bw_download]
[/bw_floater]
cocos3d 0.5.1-beta
The focus of this release was to adjust and solidify behaviour based on user feedback after the initial release, including adding 3D touch support and easy duplication of 3D models.
- Any visible 3D node can now respond to touch events, and the application can receive callbacks when a node is selected. Individual nodes can be marked as touch-responsive, or not. Node assemblies can be configured to select either the entire assembly or individual components, when a touch event occurs.
- All 3D nodes now support the
<NSCopying>
protocol. Creating multiple copies of a 3D model is now simply a matter of invoking thecopy
method. The original and new nodes can be moved, rotated, scaled, animated, colored, or textured independently. But fear not, to preserve memory, underlying mesh data is shared between copies. - Fractional animation is now supported. Any fraction of the full animation data may be played. For example, if a single animation contains several movements, each movement can be played separately.
- All 3D nodes now support animation. Previously, only nodes loaded from
POD
files could be animated. - All 3D nodes, including node assemblies, support the
<CCRGBAProtocol>
protocol, plus material coloring properties, to allow fading or tinting of complete node assemblies. - Applications now have more control over releasing mesh data from main memory once it has been copied into OpenGL ES VBOs. The release of main memory data is no longer automatic when VBO’s are created.
In addition to these main features, this release includes a number of fixes and adjustments based on user feedback, and there have been a number of small changes to the API
with this release. For more complete and detailed information on what’s new in this release, including changes to the API
, we encourage you to read the CHANGELOG
document in the cocos3d distribution.
[bw_floater]
[bw_download title=”Download 0.5-beta”]
[download id=”5″]
[/bw_download]
[/bw_floater]
cocos3d 0.5-beta
This is the initial release.
- Seamless integration with cocos2d. 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.
- Pluggable loading framework for 3D models exported from familiar 3D editors such as Blender, 3ds Max or Cheetah3D, or through industry standard 3D object files such as Collada or PowerVR POD, or even from your own customized object file formats.
- Imported 3D models can include animation sequences.
- 3D model objects can be arranged in sophisticated structural assemblies, allowing child objects to be moved and oriented relative to their parent structure.
- 3D models, cameras, and lighting can be manipulated and animated using familiar cocos2d Actions, allowing you to quickly and easily control the dynamics of your 3D world, in a familiar, and easy-to-use programming paradigm.
- 3D objects can be covered with dynamic materials and textures to create rich, realistic imagery.
- Mesh data can be shared between 3D objects, thereby saving precious device memory.
- Mesh data can freely, and automatically, use OpenGL vertex buffer objects to improve performance and memory management.
- Culling of 3D objects outside of the camera frustum is automatic, based on pluggable, customizable object bounding volumes.
- Automatic ordering and grouping of 3D objects minimizes OpenGL state changes and improves rendering performance. Pluggable sorters allow easy customization of object sorting, ordering, and grouping for optimal application performance.
- Automatic OpenGL state machine shadowing means that the OpenGL functions are invoked only when a state really has changed, thereby reducing OpenGL engine calls, and increasing OpenGL throughput.
- Sophisticated math library eliminates the need to use OpenGL ES function calls for matrix mathematics.
- Fully documented API written entirely in familiar Objective-C. No need to switch to C or C++ to work with 3D artifacts.
- Extensive logging framework to trace program execution, including all OpenGL ES function calls.
- Includes demo applications and Xcode templates to get you up and running quickly.
Comments
4 responses to “”
[…] has been updated to v0.6.1 with a number of new features notably support for Cocos2D particle systems, fog effects, lighting […]
[…] course the latest updates of cocos2d-iphone-extensions 0.2 and cocos3d 0.6.3 are also […]
[…] On the downside, if you are a beginner it might get you confused going back and forward between regular iOS development and using the cocos2d framework. You might want to try it and see how you feel. There is also some development for a 3D framework, for more information you can click here […]
[…] On the downside, if you are a beginner it might get you confused going back and forward between regular iOS development and using the cocos2d framework. You might want to try it and see how you feel. There is also some development for a 3D framework, for more information you can click here […]