Blender to .as3 Exporter for Papervision 3D, Away3D and Sandy3D Updated

If you are exporting from blender to actionscript directly so you can get your models into flash as script you can use the Blender to .as3 exporter which so kindly supports all flash 3d engines currently Away3D, Papervision3D and Sandy3D.  Dennis Ippel made the Blender exporter a while back but the update supports papervision 2.0.

The benefits of COLLADA are nice but there are so many differences that you can run into trouble.  With the exporter it is a direct faces and vector export without all the bloat of DAE/COLLADA xml.  This works if you are only developing for flash and dont’ need to use the models in other platforms/systems/engines that aren’t in flash.

Hardware of the Casual Gamer

Making great games, applications and tools using flash, silverlight or other tools that are emerging such as Unity3D takes great style, effort and knowing your target. We need to know what the end-user machine has at hand.  The Unity 3d guys put together a great post on the capabilities of casual gaming machines. With all the talk about flash 3d, unity3d and silverlight what level are you targeting and what group of people can actually PLAY your games as you envision.

Pretty much everyone knows Valve’s hardware survey – it’s a very valuable resource that shows what hardware the typical “hardcore PC gamer” has (that is, gamers that play Valve’s games).

However, the “casual gamer”, which is what Unity games are mostly targeted at, probably has slightly different hardware. “Slightly” being a very relative term of course.

Lo and behold – we have a glimpse into that data.

How? First time the Unity Web Player is installed, it submits anonymous hardware details (details in the EULA). This happens only once, and contains no personally identifiable information. It’s much like visitor statistics trackers on the websites that gather your OS, browser information and whatnot.

Remember, all this data is from people who installed Unity Web Player (most likely because they wanted to play some Unity content on the web). Hardware of standalone game players might be different, and hardware of your game’s players might be different as well. The data set is well over a million samples at the moment.

Check out the full stats here.

The most interesting stats to me:

OS Platforms

Windows 96.8%

Mac OS X 3.2%

CPU Core count overall

1 54.7%

2 44.1%

4 1.1%

8 .1%

Wow this one is surprising, but with the type of gamer that will play and download a quality new plugin to get to a game, maybe not.  They need to have the latest and greatest.  Multi-core processors have been selling for about 2-3 years so this is a continuing trend that will make Flash 3d and even plugins like Unity 3d better over the short term.

Also when you check it over at Unity Blog note the top cards, it is a bit painful if you are a casual gamer developer.  Not a decent card in the top 10-15. But that is changing rapidly over the next 1-2 years in this regard. But this also vyes well for flash based games that rely on dual core software rendered results right now as a decent constraint for developers to keep content painfully accessible to all states of machinery out there.

I wonder if this information is available on the flash player and public? This is specific to the Unity 3D plugin that is also a bit of a different market that is willing to install a plugin for better experiences.  With Flash it is usually preinstalled or auto updated for a casual user and might be different as Flash has a 98% penetration rate.  Or for that matter the Director users which would be more gaming focused which amout ot about 40% of internet users.  But as with the case of Unity it is specific to games right now and a small penetration rate, Flash is also apps, ads, tools, demos, interactives in addition to games.  Having this information on Flash or Director would be nice.

AS3 Flash 3D Engine SWFZ Source Code Goes Open Source

Jono is giving SWFZ to science and the open source devices.

The SWFZ engine is one Flash 3D engine that took a different approach. It is a bit early in its technique used but the author at custom:media Jono has decided to float the source code out there in ghost mode (no active development but not dead). It is just ready to branch and others to run with it. He is floating the source but I think in 1-2 years this will be the preferred method if processors and multicore parallel usage is optimized. We shall see.

The implementation method and difference with SWFZ engine in Flash for 3d is that is is a pixel based renderer or scanline. It is based on a really fun game engine called Irrlicht which has been pretty active for the last few years but is a C++ DirectX and OpenGL engine. Since SWFZ has to run in Flash and it is a pixel renderer/scanline it has some limitations currently in Flash. Games and renders have to be fast to pull this off and Flash is limited by the software renderer but as computers get multiple processors and flash player gets better at this then this will be a viable option (it is the same thing that limits Canvas based renderers right now). One main problem with this is you can’t go too full screen the biggest sizes that perform well are smaller windows 320×240 etc. But if the processors can handle it it is actually more efficient when it removes overlap, extra triangle drawing and painters algorithm like problems dont’ pop up (triangle overlap when on same plane). This method draws pixel by pixel but fast enough flash engines like Papervision, Sandy3D and Away3D draw overlaps due to the drawing technique, back to front.

But SWFZ still manages to pull off some amazing feats such as these demos

Quake Demo

Terrain Demo

Yoshis Hip Hop Couzin

Jono has put some great classes into SWFZ engine such as bsp parsers, quake md2 parsers, animated mesh, and lots of great examples in porting C++ Irrlicht to AS3. This was a very early example of how AS3 was fun for programmers to port stuff from C or C++ into Flash. AS3 is just fun. Also be sure to check the site for more samples like an FPS game, some basic ai etc.

Jono has been working on 3d in Flash for a while and actually this message is what shows the difference betweeen this approach and other flash engines the way Papervision, Sandy and Away3D (pv3d derivative) make 3d in flash fast enough (Painter’s Algorithm and drawing skewed movieclips and textures.

Demos

More about the Engine Some Notes

The SWFZ engine.

Overview:

SWFZ engine is the result of four years of me messing with 3D in Flash.

I was a complete newbie to 3D, so a lot of learning has happened to get to here.

If you’re interested in 3D engines check out the resource links at the bottom of the page:

The Demo:

Model

  • .md2 format from ID’s Quake2.
  • Uses frame based animation
  • Textured with jpeg
  • No lighting, No Gouraud Shading, just plain texture

Skybox

  • Textures are just jpegs.

Boxes

  • Rendering – Textured Gouraud , Textured Gouraud with Alpha, Textured Gouraud with Quick Alpha, Gouraud Shaded, and the large box is just Textured.
  • Star Texture – Targa (.tga) file format.

AS3 classes

  • 171 classes and interfaces

Scene

  • No lighting
  • No collision detection

SWFZ engine technology:

The demo only shows a small part of the capabilities of the engine. In the coming weeks I will get www.custommedia.co.nz up and running and start to post more info then.

Currently implement stuff:

New file formats supported

  • .tga – Targa Image
  • .bmp – Bitmap Image
  • .3ds – 3D Studio Max
  • .bsp – Quake3 levels
  • .md2 – Quake2 models
  • .obj – Wavefront 3d object (static)
  • .zip – Read from a zip archive (all in Flash, no server side scripts)

3D Rendering

  • mipmaps
  • perspective correct texturing + affine texturing
  • Flat shading
  • Gouraud
  • Textured Gouraud
  • Textured Flat
  • Textured Two Layers
  • Gouraud Alpha
  • Textured Flat Alpha
  • Textured Gouraud Alpha

3D Scene

  • Billboards
  • Parent, Child scene nodes
  • OctTree
  • Skybox
  • Static Meshes
  • Animated Meshes
  • Basic collision detection
  • Scene node animators

If any code is useful to you maybe drop him a donation or what would be nice if this was all setup at google code and used to be integrated into other engines. Irrlicht ports are fun and there is a future in this method when processors catch up I think.

AS3 Water Effects in Papervision 3D, Away3D and Sandy3D

I was messing with water effects and Perlin Noise (sandy3d) and some other stuff and collected some water effects and simulations that are fluid like for research, a snapshot of the state of fluid and water effects in 3d in flash.

Ralph Hauwert, of course one of the original pv3d team members, posted some great samples on water effects on 3d objects in Papervision 3D. Of course the papervision list spawned this discussion from another great post on water simulation in papervision and away3d by Exey Panteleev .

Also, some other water like effects from Fabrice Closier and the notorious mrdoob.

Ralph’s Water Effect Demos:

Hey look, the water ball is smiling at you.

Exey Panteleev’s Water Simulation:

Some other Water Like Fluid Effects:

Water is hard in flash. Fluid dynamics will probably have to be cheated but it is still looking pretty good. The amount of processor usage depends on how real you want it to look.

If you are looking to make some agua, with x, the y AND the z in Flash or Flex, these are a good place to start.

AS3 Flash FPS 3D Temple made with Away3d

Wow. This new away3d demo of a temple and FPS movement in Flash9 AS3 rivals that of the paradox engine in pv3d.

Both are extremely smooth movement and great looking textures, both of these efforts are amazing for Flash is at this level. I would say Paul Spitzer’s paradox papervision3d based engine is still a little more responsive and the textures have such good baked lighting that is is very smooth (he posted recently on some internals and usages of media in the engine). But from these two engines and iterations you can see that the FPS engine in Flash is not too far off.

Although there used to be crashes with away3d it has really improved and this is very smooth. My processor was actually quite chillin’ with all the software rendering carpet bombing from software rendered 3d in flash. But it really is starting to get much better with optimizations to flash this year and papervision, away3d and sandy getting more mature and further iterated to greatness.

The away3d sample if you walk through the rooms also has an interactive button, opening doors, room transitions (and if these are dynamic) a decent room engine with pretty sweet load times since the whole thing is under 300k.

AS3 First Open Source 3d Flash Physics Engine Released – WOWEngine

Seraf, True to the word WOWEngine was released today. It is still a work in progress but it is the first 3d physics engine out of the gate. It is built with many open source kits that are emerging. It can use any of the 3 major flash 3d engines (pv3d, sandy, away3d) and it is built on APE AS3 2d physics engine.

WOW-Engine use Sandy library for all the 3D mathematical computations (matrix, 3D vector, plane). The inner architecture of the engine is also inspired by Sandy’s one.

Collisions and physical reactions are possible thanks to the AS3 physic engine made by Alec Cove, named APE(version 0.2.).. Even if APE is a 2D physic engine, it is possible to extend the contraints on volumes, and that’s the purpose of WOW-engine. WOW-engine extends APE, and allows to simulate physics on 3D volumes.

WOW-Engine is capable to handle positions and rotations of abstract objects, which need to be linked to some visual objects (2D or 3D). The visual objects can be drawn thanks to another library (Sandy3D , Papervision3D, Away3D for 3D).

WOW-Engine use and depend of the Data Structures classes written by polygonal labs.

Basic technical Demos :

Advanced technical Demos:

Tutorials:

Away3D 3d Labyrinth Like Level Demo and Technique To Help Polycount

Who’s up for some flash 3d gauntlet? Away3d and Fabrice have posted a pretty sweet demo that samples a 3d level with a little 3d avatar running around (animated).

Fabrice has some other good notes on keeping assets in flash low poly and not relying on full 3d or shrinking that down where possible. For instance in making the walls they are more dynamic and just extrudes not really 3d point collections.
Most 3d usages (even outside flash) resort to this to make sure the featured 3d models get all the processing power and polys needed to look good but still be optimized for flash 3d (fake software rendered 3d — slower). I agree and also am interested in loading 3d flash assets as compiled SWFs, but that has it’s own set of duplication whoas. It has to be designed/planned very smart to pull off a game that can perform well.

The stuff for generating 3d worlds in flash from the FPS demo from Animas (Paul Spitzer), the intense work going on at Alternativa Game, toolkits like AS3 Geometry Exporter for 3dsmax (to away, sandy or papervision 3d format/types). And of course all the great 3d engines, physics engines and animation kits that have helped make the 3d flash pipeline for actionscript 3 (as3) a little more optimized and quite fun.

AS3 Geom Class Exporter for 3ds max to PV3D, Sandy and Away3D

shirotokoro has created something interesting in the view of a pipeline for getting assets from 3d into the new Flash 3D engines with a Geom Class Exporter for 3ds max for PV3D, Sandy and Away3D.

One of the difficulties is the DAE/COLLADA and ASE imports dynamically at runtime in Flash 3d Engines sometimes takes some work to clean up the 3d objects in COLLADA xml or the ASE or 3ds if you are Sandy. But this takes that step out of the process and exports 3d models straight to flash 3d engine object scenes.

This is great for models that don’t’ need to be dynamically imported/parsed (which takes lots of time usually to parse the DAE in flash). I am not sure how detailed or elaborate the models can get as I haven’t had a chance to play with it yet but it is an interesting idea and development but the cat samples he has are fairly complex for a flash 3d engine and they look great. I think this can be used elsewhere preparing objects for 3d in flash as precompiled movieclips already. Maybe even a turbosquid like market for flash 3d. This could be fun.

from shirotokoro via pv3d list:

AS3 Geom Class Exporter is a 3DS Max designed script that allows you to directly export 3D models to AS3 classes.

he benefit is that you don’t need anymore to load and parse a texte file (ase, obj, 3ds).
You just have to import the class and to create an instance, like you do with usual objects like plan, sphere and box classes.

This script is compatible with the following AS3-3D engines :

Away3d
Sandy 3.0
Papervision 1.5

Installation :

Download zip file and unzip in any folder.
In 3DS Max, tools tab, open the maxscript panel and click the “execute script” button.
Select the script. It is now displayed in the available scripts list.
Select it, a new AS3 panel “AS3 geom Exporter” appears.

Options :

– Package : the exported class package
– ClassName : the class name
– Engine : the 3D engine you want to use
– Scale : scale the 3D object
– Swap face normal : with some 3D models, the faces export is swapped, you can fix this by selecting this box.

Here are rendering examples of an object in the following 3D engines :

Away3d
Sandy
Papervision
Download demo sources and 3ds max script

 

Thanks shirotokoro !

Comparison of Papervision3D and Away3D and Current Flash 3D Engines

mr doob has posted a first away3d verses papervision3D test for the same model and found pv3d to be faster than away3D. Who wants to take the source and test it on Sandy?

Disclaimer: Test can vary on types of content and different systems or browsers to it is not a definitive test just one test, more will be coming and the faster it makes engines the better for adding more content to each project.

Papervision3D (src): 14FPS, Memory: ~8,5Mbytes
Away3D (src): 10FPS, Memory: OPS!
Away3D (CORRECT_Z_ORDER) (src): 5FPS, Memory: OPS!

So far there are a few good flash 3d engines But it will all come down to performance for the best.

The top three are the only ones viable for full screen and projects that can cross into the commercial realm, other pixel level systems like scanline z-buffers in flash are really just tech showcases right now.  The fast and dirty Painter’s Algorithm of Papervision and drawing things the fastest wins out when dealing with software rendering and processor based graphics.  When and if 3d acceleration is added, that will change the game immensly.

3D Materials, Texturing and Mapping in AS3 and the Limits of Flash and Software Rendering

Who’s got the textures and cool chrome shiny 3d objects in Flash? There have been lots of materials work recently from papervision list developers and away3d developers (away3d is a branch of Papervision3D) and recently it is heating up a bit.

Early on on the papervision3D excitement, flash possibilities in 3d with AS3 specifically, much of that was due to 3d in flash but also the ability to texture and have bump mapping, toon rendering/cell shading and other neat effects like baked lighting, faked real-time lighting, video and movieclips on flash 3d objects and animated textures.

But when it comes to environmental mapping and true 3d reflection that might be simply stretching Flash to a limit that might require hardware acceleration but that isn’t stopping some.

I am not sure if environmental mapping will every be possible on a large scale without hardware acceleration. Pushing the limits could help influence Adobe to the market direction. But then again I never thought I would see the level of 3d in flash that we have and maybe in 2-3 years with multi-core processors it will be possible.

Here’s a snapshot of the current materials and environmental mapping (fake and real attempts).

UnitZeroOne first environment mapping /bump mapping:


Some toon renderings from UnitZeroOne

Recent work by mr doob

Wood

Metal

Weird

Weird 2

Recent work by actionscript architect

Perlin noise algorithm to animate texture real-time into water effect

More environmental mapping effects by the away3d materials developer Fabrice. Fabrice and the away3d developers are really taking off with the papervision3d core. I am seeing lots of engine limits tested and some great work at away3d.

Bumpy Meteor

Flat Lighting on bitmapMaterial

Chrome Ball (dont’ zoom in too far 🙂 )

Did your processor melt yet?

I think that for games and flash effects faking it or real environmental mapping will have to be judged by what is needed for your purpose. I think that Flash player on software rendering can only go so far. So if you have real-time environmental reflections and surroundings it doesn’t always make your gameplay better and it won’t make your demo better if it means removing assets in other areas to make up for the performance drain of software rendering and the pressures it puts on the processor or browser plug-in.

You can still make really killer effects with baked animations, fake environmental mapping, faked dynamic real-time lighting and other effects. Flash, nor silverlight, will not be able to match hardware rendered shaders, per pixel lighting and physics anytime soon. But people are making good progress on this. I think it would be great if hardware acceleration were added to both Silverlight and Flash, with that, a brand new massive game market online, and it will be game on!

3D Pathfinding in AS3

The actionscript architect Paul Spitzer has posted two killer demos of pathfinding using A* in AS3/Flash 9 using the Away3D engine (derivative of Papervision3D that is taking off) and you can download the source for both. These demos not only highlight the pathfinding but also provide editing of the graph to be traversed which could easily be made into a game world editor.

Paul adds to some path finding work with the likes of Zeh using Tweener (the best animation kit for AS3 yet) with the bezier papervision pathfinding and the good work going on at polygonal labs in data structures for games and their usage in pathfinding for gaming in flash.

At the actionscript architect’s blog check out the true 3d path finding in all three dimensions, and a 2d based pathfind using A* algorithm in 3d.

Here’s the 3d pathfinding with true 3d (x,y,z) points used in the path.

Here’s the 2d pathfinding with 3d interface.

Paul has been doing very cool vector work from video on 3d in flash using papervision3D, to being one of the first people making demos for WPF and Silverlight such as the Northface Demo.

If you are working on path finding or gaming in AS3 be sure to check out Paul’s work, Zeh’s bezier pathing in papervision and polygonal labs often.