Development

Versions
 0.1 New and limping 0.2 20091128 Initial avatar support. Radegast plugin. 0.3 20091205 Threading support and some threading operations 0.4 20091226 Standalone user interface dialogs for logging in and chatting 0.5 20100400 Avatar in T-pose. Much debugging and cleanup 0.6 20101001 OpenGL/OpenTK version 

Running LookingGlass
has an interface of several dialog windows that control logging in, local avatar listing and chat. One doesn't have total control, but it's enough to get around and interact with other avatars. Other avatars show up as transparent spheres that move around so you can tell who you are interacting with. can be run in two ways: standalone with it's own limited dialogs and under Radegast. Also, it's only known to run on Windows(r) XP and, even though most of it will run on Linux with Mono, there is the C++ interface to Ogre that needs some porting/compiling.

Standalone
There is a prebuilt binary for Windows(r) available in the Download section. This will pop up a display window and two dialog windows. One dialog will be for logging in and the other is for chatting once logged in. The login window will turn into a listing of all the nearby avatars once logged in.

The keyboard navigation keys are: * arrow keys: move you in the direction of the arrow * HOME: start/stop flying * PAGE UP: jump up if walking, go up if flying * PAGE DOWN: crouch of walking, go down if flying * ESC: move the camera to the avatar's position (good if the camera somehow gets away) * CNTL-C: exit LookingGlass

Most configuration is done by editing the configuration files described under Configuration.

As Radegast Plugin
A much better user interface is provided by Radegast. Radegast has the controls for viewing maps, chatting, knowing who is around you. For Radegast, go to the LookingGlass in Radegast development page.

Building
is currently building and working under Windows(r)(20091226). To build and run, check the sources out of the Subversion repository (see Download), run "runprebuild2008.bat" then run "compile.bat". You will need the latest version of DirectX which you can get from the Microsoft site.

LookingGlass is made from several pieces:

LookingGlass Main
The main logic and control portion of LookingGlass is C# code. This is built by running "runprebuild2008.bat" and then running "compile.bat". Obviously for Windows(r), one must have Visual Studio C# Express or better.

LookingGlassOgre
The linkage from the main section to the C++ Ogre library is handled by "LookingGlassOgre". You must either have a copy of Visual Studio C++ Express or better or rely on the distributed binary ("LookingGlassOgre.dll").

PrimMesher
The brains for converting LLLP prim descriptions into meshes. A binary is in SVN (PrimMesher.dll) or you can build it from the sources at http://forge.opensimulator.org/gf/project/primmesher.

libOpenMetaverse
The implementation of LLLP ("Linden Lab Legacy Protocol") and structures and logic for controlling the information from the simulators. Binaries are supplied in SVN or you can build it from sources found at http://www.openmetaverse.org/projects/libopenmetaverse.

The files required are:
 * HttpServer.dll,
 * OpenMetaverse.dll,
 * OpenMetaverse.Http.dll,
 * OpenMetaverse.StructuredData.dll,
 * OpenMetaverse.Utilities.dll and
 * OpenMetaverseTypes.dll
 * openjpeg-dotnet.dll

Ogre
Ogre is an open source renderer that does the 3D representation of the virtual world view. The binaries supplied in SVN are straight, unmodified binaries from the Ogre v1.6.2 binary SDK. If you update the binaries, remember not to over-write 'resources.cfg' which has been modified for LookingGlass.

The Ogre binary files required (tested with Ogre prebuilt version 1.6.2):
 * OgreMain.dll
 * OgreGUIRenderer.dll
 * OIS.dll
 * Plugin_BSPSceneManager.dll
 * Plugin_CgProgramManager.dll
 * Plugin_OctreeSceneManager.dll
 * Plugin_PCZSceneManager.dll
 * Plugin_ParticleFX.dll
 * cg.dll
 * RenderSystem_Direct3D9.dll
 * RenderSystem_GL.dll

SkyX
If using the DirectX9 renderer and running on a high performance graphics card, one can optionally enable the SkyX sky renderer. As of this writing (20091011), the clock is not connected to the simulator clock but the sun and moon go up and down and the scene lighting changes accordingly. There are moving clouds in the sky.

SkyX is very new and has many limitations so it's configuration and use is very experimental. But the option means that SkyX.dll is required in the binary directory.

Configuration
See Configuration page. Configuration of LookingGlass is handled by two files "LookingGlass.json" and "Grids.json" found in the 'bin' directory. "LookingGlass.json" gives non-default values for the many configuration parameters. "Grids.json" give the connection information for the grids. These configuration files are JSON and the information necessary should be obvious.

Work Plan
The Work Plan has it's own page.

I want to let everyone know what I'm working on and what's next. The work plan gives a general feeling for what I am attacking next. I am also putting some design discussions in the Forums (there is a special section just for design discussions). Good discussions will create a good design.