Silverlight is great technology with powerful graphic capabilities, allows us to build RIAs with animated 2D graphics, scalable controls, media playback, uses GPU acceleration, and much more. The Silverlight application can be developed in same environment as WPF (Blend, Visual Studio, etc), has common principles of design as WPF (XAML, Namespaces, Syntax, etc). But, still it is different and targeted for cross-platform rich-client internet applications, the project from WPF can’t be ported easily to Silverlight (I’ll not open a discussion about why we can’t easily convert projects from WPF to Silverlight). I like both technologies, and mostly the 3D graphic capabilities of WPF, that is still missing in Silverlight (the 3rd version will contain 3D transformations, but is still far away from 3D capabilities of WPF).
I want to present cool library for Silverlight – “Kit3D”, that allows presentation of 3D scenes (almost like in WPF).
From project’s homepage:
For some examples of the library in action, see http://www.markdawson.org/Kit3D.
– This project is still very early on in its lifecycle, the following areas are where energy will be focused in the future:
– Bug fixes & Unit Testing – currently no unit tests for the SL code, I need to look into how to use the Silverlight unit testing framework, since unit testing frameworks like xUnit, nUnit cannot be used.
– View frustum culling – stops models that go outside the visible area of the viewport from causing rendering artifacts. Right now if you move models around outside of the visible screen space you may see visual artifacts flash on the screen as objects go behind the camera. This feature will also help improve performance for a large number of models.
– Implement more WPF3D features
– You will need a full version of Visual Studio to be able to compile the source code, since the Express versions of Visual Studio do not yet support the Silverlight Tools install.
– Need to install the Silverlight 2 dev tools from www.silverlight.net
Right now this project is focused on getting the core 3D engine up to scratch, however the longer term aim is to build on-top of the library with higher level constructs so that when Silverlight does release native 3D at some point in the future this library will still have value on-top of that.
PEOPLE USING KIT3D:
This is really cool – check out the video running on the cubes, also if you click on some of the cubes the layers rotate, awesome: http://sildev.net/3DCubes/index.html.
Some cool samples by Sildev (the images are clickable):
Summary: Current (alpha) version of “Kit3D” doesn’t support the XAML code, doesn’t have all 3D features that are available in WPF; the 3D meshes are translated to collection of 2D polygons that are rendered by Silverlight without using GPU acceleration (as WPF does). The “Kit3D” is nascent and will be improved in future, until Microsoft will add “Real” 3D support.
As we can see in this snapshot, the 3D Tiger is made from many polygons that are interpolated (transformed) in real-time by Silverlight render engine (see this link with some 3D examples). [The snapshot was taken from “Silverlight Spy” application]
The Kit3D is cool library that allows creation of 3D scenes in same way as I do it in WPF, see here my 3D model for Handball court that will be used for online game simulation in real-time (net casting), see here the mock-up for future application.
[use sliders or mouse to move/rotate/scale the court]
I’m writing some post about how to use this great library…