Monday, 21 February 2011

ANNOUNCEMENT: Code release

ANNOUNCEMENT
We are very pleased to announce that we have released a large portion of preliminary structural code to the SVN repository at http://code.google.com/p/zest3d/. The project homepage, which has links to the SVN, wiki, forum, contact form and blog can be found at http://www.zest3d.com/.

What is Zest3D
Zest3D is a new open source 3D engine for Flash based on sources by GeometricTools. Its design is focused on ideas behind some of the major GPU accelerated 3D engines for Linux, PC & Mac as well as console platforms. The engine has been developed to support the new Molehill APIs aswel as the software fallback project AS3GL which can be substituted for none GPU enabled Flash players.

Current development
Zest3D is currently within its development phase yet we have released the code as we believe it to be a great foundation to understanding the structural concepts behind Zest3D whilst giving the open source community the ability to direct the engines features. We hope that this will encourage developers, unit testers, document authors and tutorial writers to become involved with the ongoing development of the new open source Zest3D engine. If you would like to be involved please feel free to contact us with your details.

Rationale
The focus of Zest3D was to provide an extensible foundation and modular structure to enable developers to target systems with functionalities equal to those found in industry standard 3D hardware. These concepts facilitate a number of development oriented paradigms especially those aimed at GPU enabled APIs. To further promote this structural concept we recently launched a secondary open source project named AS3GL. The AS3GL project is an effort to reproduce a portion of the state based system OpenGL within AS3.

By allowing calls to an API in a similar way to calls are made to the new Molehill API, Molehill developers may use AS3GL as a fallback rasterizer for players prior to being GPU enabled. Developers can make use of a powerful rasterizer sub system which adheres to the same abstraction as modern GPU accelerated graphics cards and OpenGL developers will be presented with a recognizable API.

A decision was made to limit the number of dynamic casts within Zest3D as this is often a slow process for the runtime but the system has been developed with few type optimizations in place meaning that many optimizations can be made later to the system without altering the APIs or overall structure.

Features
Zest3D will support the following features in its first major release, many of which are already available:
  • Bindable time-based controllers
  • Bounding volumes
  • Composite scenegraph with BVH
  • Ray based 3D picking
  • LOD placeholders and switchable nodes
  • Local/global effects including fragment/vertex shaders
  • UV texturing
  • Lighting support allowing ambient, directional, point & spot lights.
  • DUR style camera model for perspective/orthographic projections
  • Point, mesh, segment, primitive, tri fan & tri strip geometries
  • Frustum culling including push/pop plane model for fast portal culling
  • State based rendering model allowing multipasses
  • Materials including ambient, diffuse, emmisive & specular types
  • Vertex management for positions, normals, binormals, tangents, texture coords, colors, blends indices, blend weights, fog coords etc
  • Buffer usage management for static, dynamic, rendertargets, stencils and textures
  • Fragment and pixel shaders runtime compiled from assembly files

Contact
We are keen to hear your ideas and/or feedback about Zest3D and if you are a developer who would like to get involved with the project please feel free to contact us at http://blog.digital-glue.com/contact/

Tuesday, 15 February 2011

Welcome to the Zest3D blog

Welcome to the Zest3D blog. We are currently working on bringing together community resources to support this open source project so watch this space.