OpenSG is a
scene graph
Scene (from Greek σκηνή ''skēnḗ'') may refer to:
Arts, entertainment, and media Music
*Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers
* The Scene who recor ...
system to create real-time graphics programs, e.g. for virtual reality applications. It is developed following Open Source principles,
LGPL licensed, and can be used freely. It runs on
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
,
Solaris and
OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
and is based on
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
.
Its main features are advanced
multithreading and
clustering support (with
sort-first and
sort-last rendering, amongst other techniques), although it is perfectly usable in a single-threaded single-system application as well.
It is not part of
Khronos Group
The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computat ...
.
History
It was started, just like many other systems, at the end of the scenegraph extinction in 1999 when
Microsoft
Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
and
SGI's
Fahrenheit graphics API project died. Given that there was no other scene graph system on the market nor on the horizon with the features the authors wanted, they decided to start their own.
OpenSG should not be confused with
OpenSceneGraph
OpenSceneGraph is an open-source 3D graphics application programming interface (library or framework), used by application developers in fields such as visual simulation, computer games, virtual reality, scientific visualization and modeling. ...
which is entirely different scene graph API, somewhat similar to
OpenGL Performer {{unreferenced, date=September 2009
OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL for the purpose of enabling hard real-time visual si ...
. Development on both started about the same time, and both chose similar names.
Technology
OpenSG is a
scene graph
Scene (from Greek σκηνή ''skēnḗ'') may refer to:
Arts, entertainment, and media Music
*Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups and performers
* The Scene who recor ...
like many others, but with a number of unique features that set it apart from others. It features a blocked state management system to reduce the overhead for state change optimization, highly flexible traversal and other mechanisms to allow run-time exchange and enhancement of core data structures, but the most unusual aspect is its multi-threading approach.
Scene graphs are notoriously hard targets for multi-threading, as they contain very large data structures easily consuming hundreds of megabytes of memory. Duplicating these is not an option due to the large overhead. Many scene graphs just lock individual nodes to prevent data corruption due to parallel writes, but that is only a partial solution. The state of the scene graph is represented by the whole scene graph, only protecting individual nodes can still lead to inconsistent results (e.g. when running an asynchronous physics simulation only updating parts of the graph will lead to partial simulation steps being displayed). OpenSG uses selective multi-buffering, by duplicating the small parts of the graph for each thread that needs to be protected while sharing the bulk data like vertex arrays and texture images, and only duplicating these using a copy on write mechanism. Synchronization of the changes for individual threads is done using a change list approach that allows minimal overhead.
The same mechanism also allows highly flexible and effective clustering. To synchronize an application running on several machines, only the changes for each frame are sent to each machine and integrated into the local scene graph. This way the distinction between local and remote changes is almost invisible. An application that wants to run on a cluster just needs to open a ClusterWindow that can distribute all changes across the cluster and can very easily drive a
Powerwall
A powerwall is a large, ultra-high-resolution display that is constructed of a matrix of other displays, which may be either monitors or projectors. It is important to differentiate between powerwalls and displays that are just large, for examp ...
or a
CAVE
A cave or cavern is a natural void in the ground, specifically a space large enough for a human to enter. Caves often form by the weathering of rock and often extend deep underground. The word ''cave'' can refer to smaller openings such as sea ...
without having to worry about distribution protocols and other complications.
People
The project was started b
Dirk ReinersGerrit Vossan
Johannes Behr it has received contributions by many other people, most notably by Carsten Neumann, who currently functions as the main maintainer.
References
External links
OpenSG homepageSourceForge project pageOhloh.net project page
{{DEFAULTSORT:Opensg
3D scenegraph APIs