3D models from basic video… This can be huge in all sorts of ways. For exponential growth you need to go virtual.
Alternativa Platform, previously Alternativa Game, launched their Alternativa Platform milestone 1 and really one demo would have been enough but there are some great demos there that literally put them what appears a couple laps up on the 3d FPS style engine in Flash.
The engine is highly optimized and smooth, heavy on the processor, but using the ‘t’ key you can see some nice revealing triangle rendering. Also, playing with the field of view adds for some nice game effects. (try jumping on the fans in the half-life like room in the first demo)
Check the textures
See the Matrix
From Above, Isometric
Here is what is to come from the platform:
Congrats to the Russian based Alternativa Platform, the world is watching.
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
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.
More about the Engine Some Notes
The SWFZ engine.
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:
- .md2 format from ID’s Quake2.
- Uses frame based animation
- Textured with jpeg
- No lighting, No Gouraud Shading, just plain texture
- Textures are just jpegs.
- 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.
- 171 classes and interfaces
- 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)
- perspective correct texturing + affine texturing
- Flat shading
- Textured Gouraud
- Textured Flat
- Textured Two Layers
- Gouraud Alpha
- Textured Flat Alpha
- Textured Gouraud Alpha
- Parent, Child scene nodes
- 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.
Good news, I meant to post this a few days ago last weekend Tim Knip added 3DS parsing support to Papervision3D. Here is the thread with the quick howto.
Thread in nabble
Added a simple 3DS parser to the Great White trunk.
// where to find textures var textureDir:String = "./images/"; // use a trailing slash! // optional materialsList var materials:MaterialsList = new MaterialsList(); // the 3DS file var fileName:String = "[path-to-3ds-file]"; // load it! _3ds.load(fileName, materials, textureDir); // add to scene scene.addChild(_3ds);
Also, one other golden nugget is Den Ivanov’s newest demo with Papervision portals! This is a very smooth demo, be sure to enter into the portals to see the seasons change.
Also here is a non papervision 3ds parser.
I have been one upped by mr. doob! I did a little nascar like RC pro am like prototype in march ’07 when the pv3d kit showed up on my screen and I was hooked like most suceptible flashers who have longed for 3d in flash! Only my version is like Nintendo64 and his is like xbox360 with updated effects and physics kits and some doob magic. All these are based off of, of course the original race car driver in Papervision and its creator Carlos Ulloa (Adobe should be paying this man).
Now I don’t’ particularly like Nascar all that much but who doesn’t like to peel out to some fiddlin’? I mainly do Nascar stuff because it is highly marketable and like the only answer most ad agencies have for getting the southern us markets it seems, that and c-o-u-n-t-r-y mu-si-c (must be said at a slower rate).
But I digress, this is a perfect mix of advertisment, game play, fun and experience. It is fast, simple, and playable. Exactly the simplicity and smoothness needed of gameplay and playback. Great ad work but it also gives something fun to do and best of all it is built in AS3 flash with a plethora of libraries from the flash as3 community.
The game platform is emerging fantastically in the AS3 market. mrdoob used these kits to build this:
It would be cool to see a post on how he did the replays with tweener – I imagine just a series of points collected with car state (current position state) and then just play them back with a call back or time delay. You’d have to capture alot for smooth playback without laggy movements. I am working on multiplayer games with this same issue for a current project.
Game on! The question is when will this be SOTD or SOTM at thefwa.com?
But, Director is like the Rodney Dangerfield of products at Adobe. Everywhere you have to dig for it, it doesn’t even have updated marketing in most places, the shockwave player link is still from 2002 etc. I wish that Adobe would support it more, open it up, allow better IDEs, integrate ES4 based Actionscript 3 or 4 into it and keep the 3d market that shockwave supports moving along.
Maybe they will give Director more love but if they don’t allow for some community input and work on the platform like Flex and Flash have thrived on, well they might just lose that piece of the market (3d gaming, hardware).
First impression is the fonts do look much better. Unicode support is so far so good and I haven’t had a chance to dig into the AEGIS PhysX engine yet but that looks very very fun.
For instance here is a Physics Engine call that creates a rigid body terrain
Or some raycasting:
var lstraycast = member(“PhysicsWorld”).rayCastAll (vector(10,0,0),vector(0,0,1));