OpenSG
   HOME

TheInfoList



OR:

OpenSG is a
scene graph A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games, which arranges the logical and often spatial representation of a graphical scene. It is a collection of nodes in a g ...
system to create real-time graphics programs, e.g. for virtual reality applications. It is developed following Open Source principles,
LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
licensed, and can be used freely. It runs on
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Solaris Solaris is the Latin word for sun. It may refer to: Arts and entertainment Literature, television and film * ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem ** ''Solaris'' (1968 film), directed by Boris Nirenburg ** ''Sol ...
and
OS X macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
and is based on
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
. 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 and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
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. Th ...
which is entirely different scene graph API, somewhat similar to
OpenGL Performer OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is an application development environment. It is a commercial library of utility code built on top of OpenGL for the purpose of enabling Real-time comp ...
. Development on both started about the same time, and both chose similar names.


Technology

OpenSG is a
scene graph A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games, which arranges the logical and often spatial representation of a graphical scene. It is a collection of nodes in a g ...
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 exa ...
or a
CAVE Caves or caverns are natural voids under the Earth's Planetary surface, surface. Caves often form by the weathering of rock and often extend deep underground. Exogene caves are smaller openings that extend a relatively short distance undergrou ...
without having to worry about distribution protocols and other complications.


People

The project was started b
Dirk ReinersGerrit Voss
an
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 homepage

SourceForge project page

Ohloh.net project page
{{DEFAULTSORT:Opensg 3D scenegraph APIs