FlashSandy (open source)

Moderators: Moderator, Global Moderator

Post Reply
Tami
Administrator
Administrator
Posts: 10892
Joined: Sun Apr 25, 2004 1:05 pm

FlashSandy (open source)

Post by Tami »

[url=\"http://www.flashsandy.org/\"]FlashSandy[/url] is an intuitive and user-friendly 3D open-source library developed in Actionscript 2.0 and now Actionscript 3.0 for Adobe Flash.

This 3D engine main features are :

* Flash player 7 to 9 compatibility.
* Both MTASC and Macromedia compilers compliant for AS2 and Flash CS3 and FlexBuilder for AS3 versions.
* Several 3D primitives, allowing fast and parameterized object creation without any 3D modelisation knowledge.
* Advanced and easy object management allowing some fantastic possibilities during your creations (scaling, rotation, translation, tween, etc.)
* Advanced camera management ( rotation, motion on linear or bezier-curve path, movements, etc.)
* Complex object loading thanks to the .ASE and .WRL files parser , but also Collada and 3DS files for AS3, (files generated by several 3D object modeling packages such as 3D Studio Max or Blender)
* Material system to easily change your objects appearance. Several material are available allowing to create transparent faces, bitmap texture and video texture as webcam video stream.
* Managment of Flash filters bringing some very nice visual effects

Technical notes about Sandy3D engine

Sandy3D is a engine for the Adobe Flash patform. Hence Sandy3D is designed for the AMV1 and lately AMV2 with AS3 version of the library.

The engine capabilities are related to the performance of such virtual machine, which does not profide any native 3D nor hardware acceleration.

Sandy3D currently provides the following features :

* The rendering engine is the Flash VECTOR one. Some tests with real rasterization has been done, but the result is too slow for a correct resolution.
* Frustum culling with two levels : bouding sphere and bounding box.
* Frustum clipping. It provides a better quality of rendering while immerssive experiments.
* Basic mean depth sorting. It is unaccurate, but fast. All the work as to be done at modelisation level.
* Managment of Sprite and oriented Sprites. As a sprite can have any native displayable flash objects, you can have vidéo, interactive element, etc.
* Collada, 3DS and ASE external format are supported.

Right now, Sandy3D offers a specific feature comparing to the other Flash engines. You can choose to have a container per object (vey useful to attach some filters effects to this container), or per polygon (different effects are possible, but Z-sorting is now polygon based, so more accurate).

As you might have understand, Sandy3D provides a simple way to improve the depth-sorting, you can choose a polygon based sorting or object based depth-sorting.

About the mapping, Sandy3D offers the following :

* Color material using the native Flash drawing method. Fast!
* BimapMaterial. It is in fact an affine mapping. A perspective corrected mapping is coming but optimizations are required.
* VideoMaterial, can receive any video stream, webcam, High definition FLV video, etc..

Each material can have some attributes to proceed some specific rendering :

* Show edges. You can play with alpha, thickness and color
* Show outline of the 3D object. Here too, color, alpha and thickness are possible.
* Set a light behaviour. Only Flat shading is available right now. For the moment we use directional light, but light handling will be improved later.

About performance, Sandy3.0 is able to render about 5000 to 9000 polygons correctly on a pretty recent computer with really correct screen resolution (fullscreen is possible too).

Some features to come :

* Improved scene depth sort, using a basis of BSP-tree.
* New materials with bump mapping, phong shading…
* Performance improvments.
* multiple camera support.

Here is Sandy pipeline :

* creation of the geometry
* geometry is attached to a 3D shape. This step corresponds to the polygon creation, vertex normals and polygon neighbours generation.
* creation of the appearance. An appearance as two materials, a material for front and back sides in case backface culling is disabled, otherwise the same material will be applied to both sides.
* the appearance is linked to the shape, and automatically linked to each polygon. This way, each polygon can have its own appearance.
* Once the scene is created, we proceed 3 steps (with for each, a dedicated event broadcast)
o update: We update the local transformations.
o culling: We compute the scene tree transformations concatenation. And proceed to the culling of objects if not visible. A cache system exists to avoid unnecessary multiplications.
o rendering: For visible objects, we proceed to their geometry transformation / projection
o display: Each material displays the polygons they are linked with.
Image

[color=\"#41211C\"]It takes years to build up trust and only seconds to destroy it

[/color]
Post Reply

Return to “Flash”