Flash is a great tool for a lot of things, but true 3D has historically not been one of them. In the following guide, I'll briefly share what Flash is good at, what it's lacking, and where you might expect to see Flash in the future.
Overview
Adobe Flash is partly responsible for "bringing the web to life". It allows for slick animations, interactive tutorials, and most notably, embedded multimedia.
What it excels at
The Flash Player has
99% penetration. In other words, almost everyone has it installed on their computer. Most streaming video you see on the web nowadays (including
YouTube,
CNN, and
NBC) uses Flash with various highly-compressed video formats embedded within it.
Pandora is a Flash internet radio service that adjusts its playlist based on the user's preferences. Multitudes of 2D games and applications also take advantage of Flash, and it can even serve commercial purposes with various
data exchange tools.
What do you mean by "true 3D"?
Sometimes, you may come across "3D" in Flash. Most of the time, the 3D you see is pre-rendered in some third-party application (like Maya or 3D Studio Max), and then imported into Flash frame by frame. What is gained in performance is lost -- and then some -- in the usually massive filesize. If you think that most people are willing to wait several minutes for your awesome "3D" to load, think again.
Why aren't we seeing more true 3D?
The answer is simple: Flash doesn't natively support 3D. When Flash was first conceived, the main goal was to create a lightweight framework for web interactivity, NOT for CPU-intensive 3D applications and games. Shockwave was meant as the feature-packed 3D toolset, whereas Flash focused on making the download as small as possible so everyone can get it.
Also, several other features are lacking in Flash that are standard in other 3D-specific platforms:
Crunching power: Complex scenes are very processor-intensive, and Flash is still at the back of the pack in terms of how much data it can handle. If the code isn't sufficiently optimized, an insanely low framerate isn't far-fetched.
Texture mapping: No official support for sticking textures into 3D surfaces currently exists.
Z-plane: Flash doesn't know what this is. Flash uses 2D layers to determine what's nearer and farther, and with 3D objects, it can be quite tricky to realistically show that only part of a 3D object is behind another.
As of recent, a lot of energy has been devoted towards getting more complex 3D to work in Flash.
What efforts are being made?
Although Flash CS3 still doesn't support native 3D, a lot of people are building their own 3D engines. Some of them are actually pretty good, too. Remember that since Flash has abysmal performance compared to other platforms, a lot of attention must be made toward getting as much bang from each coding buck as humanly possible.
Several leading 3D engines include
Sandy 3D and
Papervision 3D.
The tools for developing compelling 3D visuals and environments are out there. None of them are perfect, because they only lessen some of Flash's fundamental shortcomings. Adobe has undoubtedly taken notice of the increased demand for 3D, and may or may not act on it. In the meantime, it's only a matter of time before people start doing some
really cool things with what's available.
Flash 10 will natively support 3D. I mentioned a while back of the potential for Flash to produce amazing 3D apps. There are now many "3D" engines built for Flash, but they all imitate true 3D using clever 2D workarounds. Apps using the native 3D abili
Tracked: May 15, 13:11