Archive for the 'xna' Category

libprimrender Preview

Wednesday, December 19th, 2007

libprimrender
sceneviewer using the new libprimrender engine

Just finished committing an early preview of libprimrender to the libsecondlife source tree. libprimrender takes libsecondlife primitive objects and creates 3D mesh data. The library only uses basic math and libsecondlife data types, so there is no platform or rendering library dependency. The code is released as a GPL v2 library written in C#, based on the official Second Life viewer source code (llvolume.cpp). The screenshot above shows sceneviewer (an old Second Life client written in C# using libsecondlife and XNA) using libprimrender to draw a twisted and sheared cube. The noise in the background is wireframe water left over from the original codebase.

The source code can be browsed at:
http://openmetaverse.org/svn/index.cgi/libsl/libprimrender/

Or checked out through SVN at:
svn://openmetaverse.org/libsl/libprimrender/

This is an early preview, it does not calculate tangents/normals/binormals and there are likely still some bugs. If you spot any please use the libsecondlife Issue Tracker or post a comment here.

sceneviewer Video

Monday, October 30th, 2006

Here’s a video of the 3d Second Life client sceneviewer I’ve been working on. At the end of it you can see a moving object, the program actually shows everything in real-time including creating, moving, resizing/rotating, and deleting objects. Support for spheres, rings, and torii is next, along with support for clicking on prims and then a full SL-style camera. Hopefully by then someone makes some progress on a decoder for LayerData packets so we have terrain, and our cloud renderer is ready to go. Texture support is just around the corner as well, we can already download and decode textures from Second Life but some more robust (and asynchronous) downloading methods are needed, along with texture support in the prim library. And maybe by that time either I’ll have a better grasp on shaders, or we’ll have another person helping with the project. For now I’ll have to take a break on this as school and some contract software design will be filling up my schedule.

For the readers outside of the libsecondlife circle, sceneviewer is a C# program using Microsoft’s new XNA library. That means it’s a Windows-only program for now, but hopefully someday we could either abstract out the 3D code to target both XNA and Tao.OpenGL, or maybe Mono.Xna will mature. We are always looking for new coders for libsecondlife, so if you know C# and want to help with sceneviewer or libsecondlife drop in #libsl on EFNet.