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.
Comments
Thu, 14.08.2008 16:58
Thanks for the tip. I made a slight mod you might be interested [...]
Mon, 28.07.2008 15:06
Solution (to my issue): Views > Tools > Flush Views Cache It explains that Views doesn't always keep up with changes [...]
Mon, 28.07.2008 14:52
Thanks for this helpful post. I've seen this effect too. I'm running into a different (but related?) issue - the Views [...]
Tue, 15.07.2008 20:25
Oscar, Krista from Calais here, writing to let you know that Calais 2.1 is live. In addition to our ongoing [...]
Tue, 01.07.2008 11:30
Dan, You are absolutely correct and I should have stated this within my post; the described steps within the post [...]
Mon, 30.06.2008 09:45
i wouldnt recomand this at all, because if something happens and the conection is lost u will have your data lost if the [...]
Mon, 09.06.2008 13:42
PDT syntax highlighting support does not seem to work when subclipse is installed, any one else had this problem?
Mon, 09.06.2008 11:56
I didn't mean to imply that you were bashing unit tests.
Mon, 09.06.2008 11:52
My point isn't to bash unit tests, but rather to say there are a bunch of things you should be doing before you get [...]
Mon, 09.06.2008 11:43
I agree with, what I think is, the gist of your argument. That is, if you don't write code that anticipates failure, [...]
Mon, 09.06.2008 08:58
clipse is an open source IDE — or as they put it themselves: “universal toolset for development”. It [...]
Tue, 27.05.2008 12:17
Navigation links should fill their container to ensure ease of selection. A good method for that is to make them [...]
Thu, 22.05.2008 10:35
One of the better comments I've seen in a while: "Although I like PHP, I agree the language is only as good as the [...]
Tue, 20.05.2008 14:03
Oscar, Yahoo's Term Extraction service takes an entire article and returns a few of (what it thinks are) the most [...]
Tue, 20.05.2008 13:13
Hi, Tom Tague from Calais here. First, thanks for taking note of Calais. And integrating an example right within the [...]