Tuesday, October 21, 2008

New blog post about Flash Lite 3 and FMS

I had fun doing research for this one.

My blog post for Influxis Labs.

"Things just need to work these days, why can't they make things just work?"

- Britt Mileshosky

Wednesday, October 15, 2008

Papervision Optimization Techniques (aka taming the Beast)

I've been working with Papervision very intensively for the last 5 months or so, and I've learned quite a bit about what is under the hood.

Also, I've been using it mainly in Flash (due to me designing everything in Flash as well, as developing). So, that being said, I primarily use MovieMaterials for all of my Primitives. With using MovieMaterials that opens up a whole other can of worms. CPU issues

Here's some ideas to get you going:

  1. Set animated to false as much as possible. If you need it to animate occasionally, use some checks to turn the value on and off. Because when the material is set to animated = true, that material is being redrawn every frame.
  2. Toggle the smooth and precise values on only when needed as well. This is especially true with smooth, because that is a major CPU killer.
  3. When using objects that extend off of the screen make sure that you divide the segments appropriately. If you just instantiate something like: var ground:Plane = new Plane(groundMaterial) it's using it's default values (segmentsW:1, and segmentsH:1). That will cause the ground to be clipped by the Frustrum (basically it will disappear out of view when it should still be in view), because there aren't enough segments to subdivide. Usually (I say that loosely), a setting of segmentsW:5 and segmentsH:5 will do (unless you are dealing with something huge. . . then you would have to go higher).
  4. Use flash 10, and turn on the Hardware Acceleration (direct not GPU, because GPU has toasted some of my test computers video drivers), which will not help with the rendering of the triangles, but it'll at least help with redrawing the screen. I've seen it decrease CPU load by over 30% in some cases, with smoother performance.
Oh, and lastly, do a reality check. Not everything has to be in 3d, try mixing 2d and 3d elements wherever you can.

Saturday, October 11, 2008

Generative Musings

I've finally jumped into this realm, and have already been having a lot of fun with it. I was really impressed with Bit-101's Art From Code site, so I've finally started playing with some Math.randomness.

Even though I'm late to the tea party, I might as well take a sip.

Here's my first piece I'm working on:

Missile Command Cityscape

Basically what I am doing is generating random circles, with random colors, and scaling them with a you guessed it. . . a Math.random(). But then I also graph the scaling and the circle's x and y values and that gives me the cool line work on the left. What gave me the idea to do that is I've been really into visual complexity lately. And I've been trying to figure out how to create more visuals by graphing out data that my code is already creating. It kind of goes along with the ideas I used to have to make music that sounded like Autechre. Take a sample of your own song, and then play it at various octave intervals all at the same time.

Yeah, it's no Eric Natzke, Jared Tarbell, or even Keith Peters, but it's fun none the less.

I'm also thinking of working on generative site layouts, and generative art using Papervision or Away3d. Is there room for another Sound Visualizer?

Friday, October 10, 2008

Old blog, new nonsense

So, here's the new format, and I'll be talking about the following on my blog:

Flash/Flex
Actionscript
Flash 3d
general awesomeness
my experiments
neat-o stuff

First, I'm going to show the last thing I've completed for the awesome company I work for:

Paradigm Player

Oh, and I write for this blog too:

Make Me Pulse