Monday, 20 October 2008

Foray into 3d

This is my first post and I want to talk about my recent foray into the world of 3d engines for Flash. The technology is moving rapidly, but emerging are the main players:
Being somewhat a novice to the 3d world, its difficult to begin to make a decision as to which API to use, and certainly word of mouth sometimes seems the best option. Having being recommended Away3d I embarked upon getting to grips with its API. A bit of experimentation revealed what I would call severe limitations of this engine. Both Papervision and Away3d suffer from severe clipping issues; and although a workaround is suggested via embedding views within Sprites, this does not by any means rectify the situation. In particular clipping is noticeable where an object is moving along a horizontal plane, but does not seem to be a problem for vertical surroundings such as walls. In the defense of both papervision and Away3d, the advantage of these engines are in their speed and memory usage; and therefore may be justified for certain projects not affected by these limitations.

My experiment (example to be added) was based upon creating a small 3d environment and from a proffessional stand point, the output from Away3d was not satisfactory. The clipping issues lead me to this blog benchmarking all of the afore mentioned engines for clipping issues. As seen in both the Papervision and Away3d examples clipping occurs between a cube moving on a flat plane. Although it could be argued that the clipping is minimal in these examples; anything more sophisticated, such as adding a texture would produce a much more noticeable effect.

This lead me to experiment with Alternativa3d. Initially I was very impressed with the quality of documentation (something which is lacking for Away3d), this included a number of basic to advanced tutorials. As can be viewed in the demos the results are exciting, and in this case reminiscent of the old PC shoot 'em up Doom. It's astounding that we can now produce PC games which were cutting edge at the time and via the internet, using Flash, once used as basic 2d animation tool.

My criticism of Alternativa3d is whereas the api's for Sandy, Papervision and Away3d are largely the same, Alternativa uses slightly different terminology and is more complex. However this could reflect Alternativa's advanced capabilities which includes collision detection (a feature not yet available in Away3d).

Sandy has some interesting demos, this one in particular boasting collision detection and integration with a physics engine, although it don't seem to match Alternativa's sophistication, perhaps this is though lack of trying. The documentation and tutorial's offered are phenomenal and definitely the best so far. In light of this I would probably recommend any novice looking for a solid introduction to the 3d world to start with Sandy and for those who are still fearful of AS3 (why?!) Sandy is also available to AS2 users.

No comments: