Technical Reference/terms

From OpenSimulator

Revision as of 15:12, 3 September 2020 by Steevithak (Talk | contribs)

Jump to: navigation, search


This is a glossary of software technical reference terms commonly found in descriptions of how OpenSimulator works from invocation, initialization, main loop and various services.

Definitions of OpenSimulator technical terms

Bakes
An abbreviation for Bakes on Mesh. Also sometimes referred to by the acronym BoM. Refers to a server-side process adopted by Second Life and later OpenSimulator v0.9.1.0 that combines multiple texture layers used on an avatar into a single texture for delivery to a viewer. For example, skin, tattoos, and multiple layers of clothing textures could be combined into a single texture. As part of the process, the corresponding region of the avatar may be hidden so that it does not interfere with the "baked" mesh.
Caps
An abbreviation that is short for Capabilities. Caps refers to the capabilities that a particular grid region provides to viewers such as voice or multimedia. For more, see CAPS.
Client
A program that connects to OpenSimulator over a network. A Viewer is a type of client that allows a user to view the simulation. Other types of clients might include search engines, messaging applications, or other programs that connect to OpenSimulator but do not create a visual presence within the simulation.
Entity
A thing that exists within the simulation. It may have a visible appearance, position, a rotation, velocity, and other attributes. It is responsible for providing a physical proxy that can be handed off to a physics engine. It may be invisible, static, or have no physical proxy but it must still implement all of these concepts.
Grid
An array of one or more regions maintained by a collection of OpenSimulator ROBUST grid services that form a single, self-contained Virtual World. May also refer to a Serverless Grid.
Hypergrid
Sometimes abbreviated HG. Refers to both the communications protocol that integrates multiple grids and the collection of grids using the protocol. In theory the Hypergrid protocol allows users to teleport from a region in one grid to a region in another grid. For an overview of the concept, see Hypergrid. For details on specific versions of the Hypergrid protocol, see Hypergrid 1.0, Hypergrid 1.5, and Hypergrid 2.0.
LLSD
Acronym for Linden Lab Structured Data. A standard for encoding data for use with LLUDP communications between the simulator and the viewer. For details on standard, see Lab Structure Data.
LLUDP
Acronym for Linden Lab UDP. The designation is commonly used in the OpenSimulator community for the Linden Lab Second Life Binary UDP Protocol used for communication between virtual world simulators and viewers. For details on the protocol itself, see the Second Life Open Source Protocol documentation. For more on the OpenSimulator implementation of the protocol, see LLUDP ClientStatck.
Mesh
Any type of entity that stores geometry data instead of procedural instructions to generate geometry. Depending on the implementation, a mesh may or may not implement additional interfaces such as the scripting container interface or LLUDP concepts. Mesh support was originally introduced in OpenSimulator by the realXtend team.
Megaregion
An experimental and now deprecated type of region that could exceed the usual 256x256 meter size limit by combining multiple standard regions. Megaregions were deprecated in OpenSimulator v0.8.2 and support for them was removed in OpenSimulator v0.9.0. For more, see Megaregions.
OGS1
Acronym for OpenSimulator Grid Services version 1. A collection of grid services software used through OpenSimulator version 0.6 to provide UGAIM services to grid clients. OGS1 relied heavily on a Microsoft .NET technology called Remoting. Developers decided to move away from relying on .NET specific methods in order to make the software more portable and to increase performance. OGS2 was proposed and experimented with, but never adopted. In place of OGS1, OpenSimulator 0.7 and later adopted ROBUST as a replacement technology. For more, see OGS1 Diagram
OGS2
Acronym for OpenSimulator Grid Services version 2. An experimental improvement to OGS1. The code was written and tested but never adopted in a release version of OpenSimulator. Instead, ROBUST was developed to replace OGS1.
Prim
Abbreviation for Geometric Primitive. A prim is a type of entity that originated in the Second Life and is a procedurally generated basic shape that has an efficient network representation. It implements the basic concepts required to be an entity, plus many additional concepts that are specific to the LLUDP protocol. It also implements some extra generic concepts in OpenSimulator, such as acting as a script container.
Region
A 256 x 256 meter area that has an X/Y position in a grid and a regionhandle calculated from the position. A region can also be defined as an IP endpoint that the Viewer can use to establish a client connection. The unique ID of a region is a UUID. This means that a region can change position, and because of that position change, the regionhandle will be recalculated. The regionhandle will uniquely identify a position in a grid. A region contains a number of sub components such as Scene and Client/Viewer circuits. See also Varregion and MegaRegion for comparison. Note: in some cases, region may refer to the regions database table which stores data related to a simulator's regions. For more on the DB usage, see Regions_(database_table).
Regionhandle
A regionhandle is a 64-bit number that stores the X/Y location of a place in a grid. The high order 32-bits are the X position, and the bottom 32-bits are the Y position. A region handle can be calculated as follows: ((X * 256 + x_offset) << 32) + (Y * 256 + y_offset). X and Y are the grid location of a region. X_offset and y_offset are the x and y location of a place within a region so their values will be in the range of 0 to 255 (inclusive).
ROBUST
Acronym for Redesigned OpenSimulator Basic Universal Server Technology. A modular replacement for OGS1 to provide grid services including UGAIM as well as allowing third party modules to replace standard grid services or implement new ones. Adoption of ROBUST began with OpenSimulator v0.6.6 and incrementally replaced additional OGS1 services until OpenSimulator v0.7 when ROBUST provided all services and OGS1 was completely removed. For more, see ROBUST
Scene
In 3D graphics, a scene is the visual representation of all the entities and visual characteristics (light, shadows, atmospheric effects, etc) of a defined physical space. The visual representation is expressed in a scene graph and shared between the viewer and simulator. The scene may change over time due to updates in the location or appearance of entities. In OpenSimulator, a scene is part of a region. Currently there is a one to one relationship; i.e. one region has one scene. The entities in an OpenSimulator scene are represented as either ScenePresences or SceneObjectGroups. A ScenePresence can be represented by an avatar, if it is a root scene presence. SceneObjectGroups consists of a number of SceneObjectParts.
Scene Graph
In 3D graphics, a scene graph is a data structure that represents all the entities in a scene. Generally scene graphs in MMOs are designed to be highly efficient hierarchical representations of entities arranged logically or spatially. OpenSimulator, however, because it relies on viewers designed for Second Life, inherits Second Life's suboptimal scene graph design. This unusual scene graph design makes it very difficult to develop new viewers based on conventional 3D libraries such as Ogre or Godot which use more recent Entity-Component or hierarchical Object-Oriented scene graphs. Open Simulator developer Adam Frisby, working with RealXtend, devised an improved scene graph for OpenSimulator that would retain compatibility with Second Life viewers while providing hierarchical features and compatibility with newer 3D graphics libraries. Adam's feature proposal was accepted but stalled when he left to work on other projects and remains unfinished. For more on Adam's proposed scene graph, see the Feature Proposals page. A good starting point for learning about OpenSimulators scene graph code is OpenSim.Region.Framework.Scenes in SceneGraph.cs.
ScenePresence
Each viewer is represented by one or more avatars. The Root avatar or ScenePresence functions as a kind of cursor, into the grid. Where the region will keep the viewer updated on the state of the simulation, taking place in the scene. Besides the root presence, a number of child presences will exist in the neighboring regions, enabling the viewer to know what is going on in the neighboring regions.
Serverless Grid
A Grid formed by connecting multiple stand-alone regions without using ROBUST grid services. Serverless Grids were supported in older versions of OpenSimulator. For more see Serverless Grids
Session
Each connection between a viewer and a region, regardless if the avatar is the root or a child, is a session.
Simulator
Frequently abbreviated as Sim. Refers to an instance of the OpenSimulator server that hosts one or more Regions.
UGAIM
Acronym for the common grid services: User, Grid, Asset, Inventory, and Messages. Originally, the order of the letters in the acronym was related to the order in which the services needed to be started in early versions of OpenSimulator. Other combinations and orders may appear in the OpenSimulator documentation, code comments, and mailing list archive, for example: UGAI, UGRM, URM, UGAIS etc. It's often necessary to research the context to determine specifically what additional letters refer to but the general idea is the list of grid services.
Varregion
A special type of region that can exceed the usual 256x256 meter size limit. The viewer in use must support the Varregion feature. Varregions may be sized in increments of 256 meters up to a maximum of 8192. For more, see Varregion.
Viewer
A client application that connects to OpenSimulator and displays a view of the simulation to a user. There are many viewers but most are forks of the original open-sourced SL viewer. For more, see Connecting.




See Also

General
About This Wiki