3D and Flash

Posted on October 29, 2010

0


Somewhere in the first half of 2011, Flash will release a new Flash player with GPU 3D support. From Adobe Labs

When will the support of the new 3D APIs be generally available to users?

We will be introducing support for the new GPU-accelerated 3D APIs in a future version of Adobe Flash Player. We expect to offer a public beta in the first half of 2011 to allow developers to leverage the new APIs and provide us valuable feedback.

Demos

This demo is made with Alternativa for the Adobe Max conference and gives you an impression of where we are going with 3D in Flash.

And another using Alternativa 3D.

Why 3D in Flash might be a game changer

  1. Distribution – The most recent Flash player is – according to these numbers – installed over 70% of all machines everywhere
  2. Multiple 3D frameworks to choose from – you aren ot bound to one specific player. There are more and more 3D frameworks available for Flash. Some better and more mature than others. See (incomplete) listing below
  3. Use of open standards for 3D objects – Many Flash 3D engines use Collada, which in its turn is an XML dump with the definitions of the 3D objects it represents.
  4. Dynamic content loading – you can load 3D objects on demand, allowing you to shorten loading times and go beyond the fixed compiles of – for instance – Unity3D.
  5. Speed – It seems that the issues with 2D rendering (see below) are no longer there for 3D content.

The engine uses DirectX 9, OpenGL 1.3 and OpenGL ES 2 according to this presentation (around 19:00 minutes in the video)

More on the APIs and project (MoleHill) here

What this will do for 3D designers

Advertisement agencies will go wild on this one in 2011. I think that the people able to do stuff in 3D (either via Blender, 3D Max or any other 3D suite) will see the demand for their services rising in 2011 and further.

My personal take

Although there will be some hurdles to take (as usual with Flash) and fixes to be found for things you would expect to be there (as usual as well) I am hyped. I am jumping around the house of excitement.

The main reason for this excitement is that we finally moving towards 2010 with Flash, instead of having to build things as if it is still 1999.

Aspects

The Stage 3d (25:00 minutes in the presentation) on which the 3D content is rendered is placed underneath the SWF content. This is understandable as the 3D rendering is done via the GPU and thus has a different rendering source than the 2D content. The consequence is that you can not mix content or put anything underneath, so faking 2D content “under” 3D is by using tricks / masks and impossible if you want it to “shine through” – unless you use other and processor-heavy tricks, like bitmap-masking based on the pixel-colors of the 3D render or placing – as suggested in the presentation – bitmap snapshots of the GUI as background in the 3D render. (Not experimented with yet, so do not pin me down on this.)

Possible uses

  1. Online games – offering the new and exiting 3D possibilities
  2. Augmented reality stuff – using the higher quality of rendering for more engaging content including
    1. Advertisement / product placement
    2. Games / Advergames
    3. (Product) Demos
  3. 3D websites – running the content in 3D environments instead of your 2D and adding new possibilities for visual designers
  4. 3D walk throughs of locations – like Google Maps Street View but smoother:
    1. City scapes
    2. Houses and housing blocks yet to be built
  5. Interactive product displays – showing clothing, shoes and whatever you have in a 3D render – provided that the 3D presentation is matching the eastetics of movies shot with HD cameras, allowing you to go “inside” and “take objects apart” at wish.
  6. Interactive manuals – showing you how to take stuff apart, step by step and rotate and zoom for:
    1. Medical purposes – both “how to” and educational
    2. Mechanical constructions – showing you how stuff is put together and how to take it apart

An incomplete overview on Flash 3D engines

I did not research each and any of them, worked with PaperVision3D myself alittle, so I can only give you a limited overview of each.

  1. PaperVision3D – Open Source
  2. Away3D – Open Source
  3. Sandy3D – Open Source
  4. Alternativa3D – Closed Source / download SWC
  5. Sophie 3D –  Closed source / “Flash component”, commercial license
  6. Flare3D – Open Source
  7. Yoghurt3D – Probably open Source, download link broken at time of this post

This list is not complete, but gives you some impression on what is available.

Flash 3D over GPU vs Flash 2D over CPU – hardware acceleration all the way?

Where 3D can soon be rendered over the GPU (doing al the stuff needed to show you the pictures on screen), releasing your CPU (the one doing all the other stuff as well) is one of the biggest wins here.

It is not clear to me if GPU acceleration will also be applied for 2D rendering. Right now (version 10.1) this is not the case, causing one of the biggest bottlenecks with Flash Content: eating up your CPU while rendering 2D content.

This is and has been one of my biggest beefs with Flash. When you want to go all the way with your content, soon your machine starts to tell you by the sound of the cooling fan and the stutter in your animations that you might have gone too far for what is possible on screen.

I compared the levels of possibility in the past years as “working with the performance of 10 years ago on a system bought yesterday”.

Once this is solved (memory issues seem to be tackled in 10.1) Flash is on top of the game again. Which is completely fine to me.

Conclusion

3D in Flash is awesome. I hope the 2D rendering via the GPU will follow soon too. It would seem logical to me that it will be. But according to this post by Tinic Uro, 2D acceleration is not that simple yet.

Advertisements
Tagged:
Posted in: Opinions, Overview