We are pleased to announce that the release build of Away3D 4.0 Beta has finally arrived! What with all the action and reaction of the last few weeks and months, its been a tough time for everyone at Away3D and we appreciate the patience and resilience of everyone involved, none more so than all you users out there.
The purpose of the beta release has been to solidify the APIs written while Flash 11 was still in incubator phase, introduce some others after feedback from users and our own internal team members on features and easy of use, and generally stabilise the library codebase. The overall intention has been to produce an update that improves your daily workflow – here are some of the following improvements that have been implemented:
New Texture classes
In order to streamline our GPU implementation in Away3D 4.0, we have to consider data optimisation in a way that keeps GPU upload bandwidth to a minimum. Textures comprise much of the data used in 3D, and as such we have introduced some new classes to assist with optimisation in this area. Instead of automating the creation of texture objects inside materials, Away3D 4.0 introduces the new BitmapTexture class that acts as the data instance of a texture. This can be shared by any number of material classes and is not bound to any single material, allowing the user to easily manage and optimise texture use in a project.
New Geometry handling
The concept of a mesh as a container for geometry data is something that has always been present in Away3D, but the new version puts more emphasis on it than ever. Primitive classes now inherit from geometry to encourage their reuse in mesh instances, and the Mesh class itself has the addition of a geometry property in the first argument of its constructor. By doing this we hope to encourage more efficient re-use of geometry in Away3D 4.0 projects, something that also has significant benefits for GPU use.
Improved mouse interaction
Mouse interaction with 3D objects inside the view have previously relied on data from the GPU for detecting 3D mouse events. This has been a reliable way of resolving interactions, but it comes at a high cost as the GPU in general is only designed to have data travel one way – to the screen. In order to avoid the processing overhead that comes with GPU readback, we have completely re-written mouse interactions for the CPU, using the fast maths operations of Pixel Bender to ensure efficiency. For the rare cases where this is not enough, we have also introduced a super-optimised option to detect mouse events on just the bounding geometry of a 3D object.
Handling new / deprecated classes
Due to the API changes to Away3D 4.0 Beta mentioned above and elsewhere, some degree of code refactoring will be required to upgrade an existing project. While we hope these will appear as minor, please bear that in mind if you are considering switching mid-project. To help with some of the changes, we have retained the old class structures but using them will throw a deprecation error with details of how to re-factor using the latest classes.
The new release is intended as a consolidation of various loose ends and unoptimised areas and as such has no outright new features, but it is out recommendation to upgrade whenever possible in order to take advantage of the streamlined APIs and optimised operation.
An update to the livedocs will be arriving shortly, in the meantime you can grab the latest 4.0 beta build by going to the away3d-core-fp11 repository on github, and download all the existing Away3D source examples updated for the beta changes at away3d-examples-fp11. Alternatively, head over to our downloads page for zipped sources of both repositories.
We hope you like the new release and welcome any feedback.
The Away3D Team
********* update *********
Our googlecode svn has now had its source repository updated for any of you who prefer using svn over git – sadly, due to git’s terrible svn integration we won’t be able to issue regular code updates here, but we will continue to post all major releases:
library is located at http://away3d.googlecode.com/svn/trunk/fp11/Away3D/
examples can be found herehttp://away3d.googlecode.com/svn/trunk/fp11/Examples/Away3D/as/
Finally, we also have a selection of update compiled demos that now run in 4.0.0 beta, links are pasted below. For each demo, you can view and download the source by right clicking anywhere in the view and selecting “View Source”. You will also notice a version indicator in the right-click menu for debugging purposes – we will be updating revisions regularly so if you like to live on the bleeding edge, you should always be able to identify which version you are currently working with.