Project DescriptionThis is a basic 3D scene graph engine that provides the essential mechanics of displaying 3-dimensional objects in a 2-dimensional viewport using Silverlight 1.0 (3D objects are drawn into any existing Canvas element). This project is 100% cross-browser JavaScript (I.E. and FireFox confirmed - others untested).
PolyGraph3D has many basic features of a typical 3D engine, including polyhedral hierarchies, positioning/scaling/rotation, movable camera, and multiple brushes.
Features that are notably missing, and probably not possible, include image/video texture brushes (or any form of traditional shaders). lighting effects, and smooth surfaces (nurbs, subdivision surfaces, etc).
Release NotesPlease take note of the following things:
- This project is perpetually in "beta" or even "alpha" status
- It probably has bugs
- No, it DEFINATELY has bugs
Known issues:
- Rotation transforms dont work (well, not correctly...)
- Scaling transforms are not calculated during render
- No support yet for gradient brushes
- backface-culling might not be working properly
- clipping of polygons that fall behind the camera is not working properly
- new paths are being drawn for each repaint when any aspect of the face is updated - this can probably be optimized to only recreate the path when the number of points changes, and simply updating the existing path on all other situations
- VisualGroups are probably not working correctly (untested)
I am sure there are many more bugs and limitations to be found as well.
There is a demo URL available on our (Wintellect's) public demo server at:
http://demo.wintellect.com/polygraph3d/default.htmlPlease do not abuse that server or it's bandwidth. Because that simply is not a cool thing to do.
If you have 3D programming experience and know JavaScript really well, then I welcome you to offer your assistance in making this project better. Silverlight experience is a bonus - but not really required since only a small portion of the code actually deals with the Silverlight interaction.