Main Page

From LookingGlass

Jump to: navigation, search

Progress Reports

  • February 21, 2010 Up to version 0.4.8 with an installation package for Windows XP and up. Have been dealing with my day job and having a life so little progress has been made the last few weeks. There is a splash screen with all the copyrights and mesh loading is not done on demand but are prebuilt. The original philosophy was to have everything built on demand (place a scene node which requests a mesh which requests materials which requested textures) but this turned out to be too slow. So, backing out of that design and to a more traditional 'build it early' design. Makes it a little quicker and stable although there still seem to be some lockups. Avatars are a bear.
  • February 1, 2010 Up to version 0.4.5 with an installation package for Windows XP and up. LookingGlass properly handles llTargetOmega animated objects so you will see some things moving. Many other little tweeks but no major new features.
  • January 17, 2010 A lot of little tweaking has resulted in performance and display improvements. The 0.4.2 version (that's installable for Windows XP) uses shaders for the display so colors are better. In sims < 5000 prims, the loading and running is pretty smooth. Above 10K or so prims, though, loading and movement is slow. Sharing of meshes in Ogre has allows me to load sims of 20K prims but it takes several minutes to load. Plan to spend more time with the shaders and looking at creating real avatars.
  • December 27, 2009 One problem that new users see is that entering a new region doesn't display very well the first time. It looks like the texture loader and the object updater suffer under the initial loading. Once textures and meshes are in the cache, display is better. If it doesn't work well the first time, try logging in a second time to get the rest of the textures.
  • December 26, 2009 The chat dialog is working and I was able to hold my own in a crowded plaza. The state-of-the-project page has a video showing the other avatars (spheres) moving around. It also has an image of all the dialogs. The dialogs are really web browsers that are Javascript and CSS formatted. I found that most of the crashes I've been dealing with are in the culling code. Don't have a solution yet but it's probably that Ogre doesn't like things being ripped out from under it. Investigation in progress.
  • Old Progress Reports

LookingGlass Virtual World Viewer

The LookingGlass Virtual World Viewer provides a modular framework for a client viewer of virtual world systems. LookingGlass is written in C# and licensed with a BSD license. The current version has a communication module that talks Linden Lab Legacy Protocol ("LLLP") which is compatible with Second Life(r) and OpenSimulator. A rendering module exists which uses the Ogre3D graphics engine. Other communication and rendering modules will be added in the future.

The state of development is alpha. It is no where near a point where a casual user can download and run and view a virtual world of their choice. The sources can be downloaded and built for the Windows XP and Windows 7 operating systems with Visual Studio. A binary installation package will soon be available.

Sources are on the OpenSimulator Forge. There is a start on information on building and running in the Development section.

Main Features

  • Modular design to support many types of virtual worlds;
  • Written in C# for operation under both the Windows(r) and Linux(r) operating systems;
  • BSD three clause license;
  • User interface is not embedded into the viewer -- all operations are through REST/JSON interfaces so user interfacing can be supplied by JavaScript/AJAX web pages (initial sample page provided) or through a completely separate application;
  • Initial communication module talking LLLP for connections to SecondLife(r) and OpenSimulator worlds;
  • Initial Orge renderer;

State of the Project (December 26, 2009)

Chat and avatar dialogs

As you can see in the video, avatars show up as spheres with all their attachments at the center. Toward the end of the video you can see the avatars moving around the crowded Lbsa Plaza. The other thing working is chat. The login dialog expands into a list of the avatars nearby and the chat dialog allows one to hear and chat with the other people in the scene. This means I can use LookingGlass in a regular viewer setting!

Still only Windows but I will work on that the next week. It does run in Windows 7 64-bit in XP compatibility mode but I'm sure there are 64 bit problems when I compile for 64 bit. Anyway, a little at a time.

Old State (December 5, 2009)

The display detail has not changed much and I've spent much time figuring out performance problems. My initial design of pull from the world by the renderer was, for the number of items there are in the world, much too slow. So I've been adding push of objects into the world. Ogre has been upgraded to use the threading version and some multi-threading has been added to the renderer. But my biggest disappointment is how long it takes to load a simulator. Once loaded, though, it works pretty well at displaying and navigating SecondLife and OpenSim regions. The video is of navigating around OSGrid::Wright Plaza. The frame rate is mostly the speed of Ogre with the thousands of graphic batchs (texture and prim coalescing is needed) and the jitter of the camera is that Ogre uses floats (32 bit floating point numbers) and they don't have enough significant digits to address world coordinates (region coordinate localizing is needed).

I build a package of LookingGlass that, on Windows, installs over a Radegast installation and adds a LookingGlass tools menu item. Used this way, one can see the world and chat, manipulate you inventory and other user interface things. Almost a whole viewer.

I am going to stop with the performance thing and add some display features. Avatars, animated textures and moving objects are next.

Old State (August 22, 2009)

Scene detail
Scene detail
Scene detail
Scene detail

I haven't been napping or spending all my time vacationing this summer. As of August 22, 2009, LookingGlass can now visit any simulator and do a pretty good job at displaying the contents thereof. These pictures are from Portland Connection in Second Life(r) and the last one shows lots of sculptie trees. The frame rates are half of what I see -- for some reason capturing the frame slows rendering down.

The quality of the display is much better because there is now a sun and, although the ambient is still a bit dark, the shading helps a lot. There are controls for rendering distance as well as frustrum culling of loaded Ogre objects. There was a big problem with running out of memory with keeping all the vertices and textures in memory. Now meshes and textures are loaded and unloaded depending on where one is looking. That led to discovering that the JPEG2000 decoder that ships with Ogre is very slow. Now all textures are saved on the disk as PNG files which makes for much more disk space used but makes reloading when the camera turns almost acceptable.

There are some problems with textures that show up on trees. Sometimes the texture on a sculptie is upside down. This makes for funny trees. Also, the flexible box that makes up some trees is rendered with the texture on the edges and the large surfaces transparent. I have built my own examples of these situations and it always works on them. I have not figured out what the difference is yet.

The next big problem is getting the user interaction smoother and frame rate up. Once things are loaded, I get around 10 FPS but loading really slows down rendering and after loading a sim it is often hard to navigate the avatar around. This probably entails figuring out the threading in libomv and how that interacts with LookingGlass. I want to get performance up to where it's almost usable as a viewer. That also means placeholders for the other avatars in the scene and adding some conversation code. Still lots to do.

Here is a video of navigating around OSGrid's Wright Plaza. You can see the effects of the low frame rate and the overly aggressive object culler.

I'm waiting for the release of SkyX for the upgrade to the skybox.

Old State (June 2, 2009)

Rezzing scene
Rezzing scene
Rezzing scene
Rezzing scene
Rezzing scene

As of June 2, 2009, the viewer connects and logs in and displays a region reasonably well. The images here are of connecting to OSGrid and displaying Lbsa Plaza and surrounding regions.

LookingGlass first displays a prim with a yellow placeholder. These are the transparent yellow balls you see. The prim is later meshed and rendered into the scene but with gray textures. Later, the textures arrive and the prims are decorated.

Some things to note:

  • Only the one region the avatar started in has it's terrain. This often happens at the moment and needs fixing;
  • There are long periods when nothing seems to happen but what's really going on is the rendering of all the small prims inside the buildings. There are several thousand prims total;
  • The large blob in the center is actually a mega-prim sculptie tree. LookingGlass doesn't have sculpties yet;
  • Transparency and solid colors are not correct everywhere. Work is needed in constructing Ogre materials;
  • The reason this is not Wright Plaza is the number of prims. Since I haven't done any optimization in Ogre, Wright Plaza runs out of memory before displaying the whole sim. Vertices sharing is on the TODO list.
Here is a video if loading of the Ibsa regions in OSGrid.

Joining the Development Team

The project is open to interested people who will contribute and extend. More communication systems, more renderers as well as opinions and code for completing LookingGlass's plumbing and framework. The Forge is keeping the growing collection of bugs and TODOs. If you have comments and/or questions, begin a discussion in the Forums. Or you can email me directly at "misterblue at lookingglassviewer dot removeme dot org" (remove the 'removeme dot').

For the current renderer, someone who knows Ogre (especially material definitions) would be a help.

Documentation on building and running is in the Development section.

Personal tools