Crisp Rasterizations with Flash 10′s 3D

Preserve your designer's hard work

My last post was about guaranteeing beautiful vector graphics in Flash. Unfortunately, the project I’m working on that uses these graphics (which again I’ll talk about at length some other time) transforms them in 3D space. Unsurprisingly this leads to some complications.

Most people forget that Flash can do native 3D, and when they see it in use usually they think it’s “innovative”. Frankly it’s not; Flash has had a 3D API since late 2008, but there are reasons why most people don’t see much of it:

  • Most designers and developers aren’t taught much about 3D transformations, or even 3D aesthetics.
  • The tools Adobe’s released to design 3D Flash content are in their first lifecycle, and are only in one product (Flash CS4), which has a ton of other new features too, competing for user’s attention.
  • There are plenty of classic techniques for producing 3D media that does not require Flash’s 3D API
  • Perspective projection of objects means that a 3D object has to be redrawn each time it is moved in 2D space, unlike a 2D object

And the sneaky one which I’ll be talking about,

  • Flash’s beautiful vector graphics may become fuzzy or pixelated when you transform them in 3D.

Thus a skilled and determined designer-developer team who find themselves in the right scenario could end up producing 3D Flash content. But if they ignore the last issue, their output might have a lower visual quality than what they’d like. Let’s look at why that is. [ More ]

No Comments

Getting good vector shapes out of Flash embeds

mxmlc's use of transcoders is more complicated than you might think

A recent project I’ve been working on utilizes a couple faces from M+, a beautiful FOSS font set. There are several ways to embed fonts in Flash, and I prefer using the [Embed] meta-tag, which plays nice with the majority of the IDEs out there. However, a straight-up font embed tag wasn’t working well at all for me. The text that appeared onscreen was broken and misshapen in places.

It turns out that mxmlc, the Flash compiler, employs several “font managers” for taking embedded font files and “transcoding” them into Flash fonts. The primary manager relies on a Java library called Batik to convert the letterforms of the font file into Flash-friendly curves. I’m not sure why this was the case, but Batik was flummoxed by some of the faces in M+, specifically with the capital ‘O’ letterform.

I mean, you could trace a big O by hand if you wanted to. It’s cake. I can’t imagine why M+’s ‘O’ is so difficult to process, but if it can happen with this font, it could happen to any font.

I only managed to get good shaped text with one font manager- the one that also handles transcoding OpenType fonts and such, which uses the new Compact Font Format (CFF) system in Flash 10. (To learn more about this subject, here’s a post about the new CFF embedding system.)

It might seem subtle, but when you compare the text side by side, I think you’ll agree that all this CFF stuff I had to do was worth it. Below is the same SWF, one with M+ text imported with Batik, the other with CFF. [ More ]

No Comments
11
11
Oct 2009

Messing with things

Oh hey, now the subtitles work

(Nobody will be reading this post until months or years after it was written, so I’ll write it from a future perspective.)

In October ’09 I started taking my site’s design and navigation more seriously, in the hopes of making it a more successful site and increasing my motivation to write posts.

Before then, rezmason.net pointed to my portfolio site. My blog was accessible only by entering its URL; there was no link to it, because it was ugly and off-brand, and wasn’t updated frequently.

By throwing everything into WordPress pages and making a custom theme, I can now direct visitors straight to the blog. My portfolio was redesigned to fit in with the rest of the site, though it can still stand on its own.

I’m now much happier with the way things are. I think October was a turning point.

1 Comment

Caching timeline objects in Flash

Grant Skinner‘s talking about a Flash feature request that seems to make a lot of sense. It got me thinking about a problem I’ve experienced with Flash in the past, and whether it deserved anyone’s attention at Adobe. I decided that it did.

A lot of programmers new to AS3 reach a point, as I did, when they get very jumpy about their projects’ memory usage. It’s kind of a rite of passage, and during mine, I discovered that a set of animated buttons I incorporated into a GUI were spewing out gobs of display list garbage. (Display list garbage consists of DisplayObject instances, whose references to parents and children make them difficult for the garbage collector to quickly eliminate, kind of like digesting cellulose. For more on garbage collection, I’d suggest you conduct a hexosearch.)

Imagine your Flash animator friend makes you a MovieClip that represents a flashing bulb. She has probably made it go on and off by having a blank keyframe (lightbulb off) and a filled keyframe (lightbulb on) in a top layer in the Flash timeline, with the lightbulb outline in a bottom layer. Because the timeline is short, it will loop frequently, causing the bulb to flicker. [ More ]

No Comments

Are browser inconsistencies the “Flash killer” killer?

It looks like the W3C is chucking the video codec specification out of HTML5. Audio, too. That must have been hard; a standard implementation for online media is a big deal, and it was apparently right about to happen.

Too bad that the people implementing our standards are Apple, Mozilla, Nokia and Microsoft. Inevitably these companies would start making power plays, but I didn’t expect any type of fallout this early in HTML5′s life cycle.

I don’t know much about standards or software politics– I write apps for a proprietary platform that just about everybody has– but I feel that whatever “takes out” Flash, as some people have been hoping HTML5 would, will not come from this peanut gallery of power-hungry industry giants. After all, <video> and <audio> are only two of several new “rich web” features of HTML5. Can we count on these bozos to agree on the <canvas> tag? HTML5 won’t compete with Flash if there is any discrepancy there. And what about local data storage for web apps? I doubt Nokia and Opera will agree on one implementation for that.

This bickering is only temporary, I’m sure. Markets swing, giants shift their weight and standards get worked out. But in the meantime, Flash implements all of these features in the same way across all browsers today (mostly) with very little competition, and is already delivering even richer web content that certainly won’t make it to HTML5 for at least a decade. For pete’s sake.

No Comments
Older Posts Newer Posts