OpenSceneGraph

OpenSceneGraph
Stable release
3.6.5 / January 31, 2020; 4 years ago (2020-01-31)[1]
Repository
Written inC++
Operating systemCross-platform
Type3D graphics
LicenseOpenSceneGraph Public License (LGPL based)
Websitewww.openscenegraph.org
www.openscenegraph.com

OpenSceneGraph is an open-source 3D graphics application programming interface (library or framework),[2] used by application developers in fields such as visual simulation, computer games, virtual reality, scientific visualization and modeling.

The toolkit is written in standard C++ using OpenGL,[2] and runs on a variety of operating systems including Microsoft Windows, macOS, Linux, IRIX, Solaris and FreeBSD. Since version 3.0.0, OpenSceneGraph also supports application development for mobile platforms, namely iOS and Android.

As of 2021, the project is being succeeded by VulkanSceneGraph project, a Vulkan-based library.[3] OpenSceneGraph is in maintenance phase since 2019.

History

The OpenSceneGraph project was initiated by Don Burns in 1998. Robert Osfield joined the project during 1999, working on porting finished components for Microsoft Windows. The project went open source in September 1999 and the official project website was created. Towards the end of the year Osfield took over the project and began extensive refactoring of the existing codebase, putting emphasis on modernisation, embracing modern C++ standards and design patterns.

In April 2001, taking into account growing community of users and interest of public, Robert Osfield created OpenSceneGraph Professional Services, providing commercial support, consulting and training services. This marks full professionalization of the project.

The first official stable version of OpenSceneGraph was version 1.0, released in 2005. An extended version 2.0 followed in 2007, adding support for multi-core and multi-gpu systems, several important NodeKits and usage of unified multiplatform build system CMake. Books and user handbooks were introduced.[4]

The project has been quickly growing and becoming more popular ever since. There are more than 530 contributors signed under current stable version, and the official mailing list contains thousands of names.[5][needs update]

In 2019, the project was moved to a maintenance phase, the main development effort being routed to its successor project VulkanSceneGraph.[6]

Features

Overview of the openscenegraph architecture.

Features in version 1.0:[7]

  • A feature-rich and widely adopted scene graph implementation
  • Support for performance increasing features
    1. View frustum, small feature and occlusion culling
    2. Level of detail
    3. State sorting and lazy state updating
    4. OpenGL fast paths and latest extensions
    5. Multi-threading and database optimization
  • Support for OpenGL, from 1.1 through 2.0 including the latest extensions
  • Tightly coupled support for OpenGL Shading Language, developed in conjunction with 3Dlabs
  • Support for a wide range of 2D image and 3D database formats, with loaders available for formats such as OpenFlight, TerraPage, OBJ, 3DS, JPEG, PNG and GeoTIFF
  • Particle effects
  • Support for anti-aliased TrueType text
  • Seamless support for framebuffer objects, pbuffers and frame buffer render-to-texture effects
  • Multi-threaded database paging support, which can be used in conjunction with all 3D database and image loaders
  • Large scale, whole earth geospatial terrain paged database generation
  • Introspection support for core libraries allowing external applications to query, get, set and operate on all classes in the scene graph, via a generic interface
  • Multi-threaded and configurable support for multiple CPU/multiple GPU machines

Features in version 2.8.3[8]

  • Mac OS X 10.6 (Snow Leopard) support
  • ImageIO support on Mac OS X
  • 3DS file format export and file conversion
  • Integrated Autodesk FBX technology
  • Integrated FFmpeg support for displaying video file content in 3D applications.
  • PLY file format support

Features in version 2.8.4:[9]

  • VS2010 build support

Features in version 3.0.0:[10]

  • OpenGL ES 1.1, and OpenGL ES 2.0 support
  • OpenGL 3.x and 4.x support along with associated OpenGL extensions
  • Support for Android on tablets and phones
  • Support for IOS on tablets and phones (end users applications have already been accepted on the App Store)
  • Introduction of Present3D application for immersive 3D presentations
  • New extensible serializers that provide new .osgb binary, .osgt ascii and .osgx xml file native formats
  • New generalized serializable metadata architecture
  • New osgQt library that makes it straight forward to integrate !OpenSceneGraph with Qt, including web browsing via QWebKit.
  • New FBX plugin based on the Autodesk FBX DSK that enables reading of the .fbx 3D authoring and interchange format
  • New directshow plugin for handling movies under Windows
  • New pov plugin for exporting a scene to POV-Ray format, enabling use of POV-Ray to do photo-realistic ray tracing
  • New ply plugin for reading ply files
  • Revamped 3ds plugin for reading and writing of .3ds files
  • Revamped dxf plugin for reading and writing of .dxf files
  • Support for Cocoa and 64bit OSX build

Stable version release history

Version Release Date
3.0 5 February 2013[11]
3.2 24 July 2013[12]
3.4 20 July 2015[13]
3.4.1 28 August 2017[14]
3.6 7 April 2018[15]
3.6.1 28 May 2018
3.6.2 29 June 2018
3.6.3 14 September 2018
3.6.4 26 July 2019
3.6.5 31 January 2020

Architecture

Library architecture can be separated into three main subsets — the core OpenSceneGraph library, osgViewer and a set of NodeKits.

Core

The base of OpenSceneGraph library can be further divided into four main modules.

osg

The core of OpenSceneGraph provides classes and methods for construction and manipulation of the scene graph. It contains classes representing various types of nodes, scene geometry, OpenGL state abstraction, geometric transformations, as well as mathematical classes for 2D and 3D vector and matrix operations. Advanced memory management is also included.

OpenThreads

The OpenSceneGraph project contains a threading library, OpenThreads, which is a lightweight cross-platform thread model. It is intended to provide a minimal and complete Object-Oriented (OO) thread interface for C++ programmers. It is loosely modeled on the Java thread API, and the POSIX Threads standards.

The architecture of OpenThreads is designed around "swappable" thread models which are defined at compile-time in a shared object library. It is of importance to note that while a factory pattern design could have been used to achieve the goal of generic interface, it would have required the programmer to allocate each of the 4 fundamental types (Thread, Mutex, Barrier, & Condition) on the heap. Due to the cost associated with heap allocation of the underlying concrete implementations of these constructs on some platforms, such allocation was deemed unacceptable at the time this library was originally written, and thus the factory pattern was not used.

Instead, a somewhat abstruse - but effective - technique was chosen to provide the necessary data/implementation hiding. This technique uses private void pointers to encapsulate object private data. The void pointers actually point at concrete data structures, but give a uniform interface to the dso.

The design goal of OpenThreads is to construct optimized implementations using platform optimized multi-processing constructs such as the sproc methods used on IRIX, and Windows threads.

osgUtil

osgUtil contains rendering backend functionality and utilities taking care of scene graph traversal, rendering optimisation and transforming the scene into a stream of OpenGL API calls. It also provides means of basic interaction with scene, such as object picking.

osgDB

This library is tasked with loading 3D model files. It supports many 2D/3D data formats manipulators. More than 50 different formats are supported - most common are 3D data formats, such as COLLADA (.dae), LightWave (.lwo), Wavefront (.obj), OpenFlight (.flt), 3D Studio Max (.3ds), DirectX (.x) and many others. OpenSceneGraph also provides its own native ASCII .osg format. There are exporters into .osg format available for Blender, Maya and 3D Studio MAX.

Supported picture formats include .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds, .tga and quicktime.

This module also provides I/O device abstraction. The other file-format loader plugins are registered with osgDB.

osgGA

This is a GUI abstraction library required for different platforms.

osgViewer

osgViewer Library provides a quick and easy way of visualizing the graphics scene. It is also a platform-independent abstraction for various window system interfaces.

osgProducer

The OSG is also shipped with a osgProducer which is just a platform-independent viewer supporting multiple graphic contexts and multi-threading.[16][17]

NodeKits

Project distribution also contains a variety of so-called NodeKits. These are solutions of common problems and frequently used more advanced 3D application components and graphics algorithms. Among the most significant are

  • osgAnimation — Skeletal models usage, animating and morphing.
  • osgFX — Special effects and image postprocessing.
  • osgManipulator — Interactive 3D scene manipulation.
  • osgParticle — Advanced particle system usage.
  • osgQt — Integration with Qt toolkit and incorporation of QtGUI elements into OSG applications.
  • osgShadow — Framework for shadow rendering techniques.
  • osgTerrain — Extensive terrain rendering.
  • osgText — Quality antialiased fonts, TrueType and FreeType font support.
  • osgVolume — Volume rendering and volumetric data manipulation.
  • osgWidget — Simple GUI creation.

Reception and adoption

OpenSceneGraph doesn't provide any functionality for higher "gaming" logic, it is a rendering-only tool. There are several full-scale engines for computer games (or so-called serious games) creation using OSG as a base of graphics rendering, the most common framework being Delta3D.

There is a great variety of software products built on top of OpenSceneGraph; among others, Virtual Terrain Project and ViewTec TerrainView. List of OSG users contains companies as Boeing, NASA, FlightGear, Norcontrol and many others.[18][19][20][21][22]

At the opensource community level, several projects have adopted OSG as a rendering backend:

OpenSceneGraph has received a javascript/WebGL implementation called OSG.JS that is used by many online 3D scene viewers including Sketchfab and Clara.io.

A wrapping from C++ to javascript through Emscripten OGStudio is also currently developed.

Among other products that use OSG must be mentioned:

See also

References

  1. ^ "Stable releases". www.openscenegraph.com.
  2. ^ a b Anne Ruas; Christopher Gold (2008). Headway in Spatial Data Handling:13th International Symposium on Spatial Data Handling. Springer. p. 370. ISBN 978-3-540-68566-1.
  3. ^ "VulkanSceneGraph Project". openscenegraph.github.io. Retrieved 2021-07-05.
  4. ^ Martz, P.: OpenSceneGraph Quick Start Guide. Louisville, USA, 2007.
  5. ^ "Support/History - osg". openscenegraph.org. Archived from the original on 26 May 2015.
  6. ^ "VulkanSceneGraph Project". www.openscenegraph.com.
  7. ^ "OSG News". openscenegraph.org. Archived from the original on 2011-06-09. Retrieved 2010-02-20.
  8. ^ "OpenSceneGraph Adds New Features to 3D Graphics Applications". April 5, 2010. Archived from the original on April 15, 2010.
  9. ^ http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.8.4/NEWS.txt [permanent dead link]
  10. ^ http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-3.0.0/NEWS.txt [permanent dead link]
  11. ^ Torres, Jordi. "OpenSceneGraph 3.0 release". www.openscenegraph.org. Retrieved 2017-09-23.
  12. ^ "OpenSceneGraph 3.2 release". openscenegraph.github.io. Retrieved 2017-09-23.
  13. ^ "OpenSceneGraph-3.4 release". openscenegraph.org. Retrieved 2017-09-23.
  14. ^ "OpenSceneGraph-3.4.1 release". openscenegraph.org. Retrieved 2017-09-23.
  15. ^ "OpenSceneGraph-3.6 release". openscenegraph.org. 7 April 2018. Retrieved 2018-08-14.
  16. ^ Aylett, Ruth. "Introduction to Open Scene Graph" (PDF). Heriot Watt University.
  17. ^ "Introduction to the OpenSceneGraph". openscenegraph.sourceforge.net. Retrieved 2021-07-05.
  18. ^ "Use cases". www.openscenegraph.com.
  19. ^ "OpenSceneGraph". openscenegraph.github.io. Retrieved 13 March 2024.
  20. ^ "Virtual Terrain Project". vterrain.org.
  21. ^ "ViewTec Inc. - Products". www.viewtec.net. Archived from the original on 2009-02-28.
  22. ^ "Delta3dengine 2023". easd-design.com. Retrieved 13 March 2024.

Read other articles:

Untuk kegunaan lain, lihat ATUC (disambiguasi). Koordinat: 41°06′41″N 48°36′50″E / 41.11139°N 48.61389°E / 41.11139; 48.61389 AtucAtucKoordinat: 41°06′41″N 48°36′50″E / 41.11139°N 48.61389°E / 41.11139; 48.61389Negara AzerbaijanRayonQubaMunisipalitasAfurcaPopulasi (2009) • Total19Zona waktuUTC+4 (AZT) • Musim panas (DST)UTC+5 (AZT) Atuc (juga Atuch) adalah sebuah desa di Rayon Quba, Azerb...

 

Cet article est une ébauche concernant une chronologie ou une date et la Chine. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. 2003 en Chine - 2004 en Chine - 2005 en Chine - 2006 en Chine - 2007 en Chine Chronologies Données clés 2002 2003 2004  2005  2006 2007 2008Décennies :1970 1980 1990  2000  2010 2020 2030Siècles :XIXe XXe  XXIe  XXIIe XXIIIeMillénaires ...

 

Emirates GroupJenisSOEIndustriAviasiDidirikanDubai (1985)[1]PendiriSheikh Ahmed bin Saeed Al Maktoum[2]KantorpusatBandar Udara Internasional Dubai, Garhoud, Dubai, Uni Emirat ArabWilayah operasi84 Negara[3]TokohkunciSheikh Ahmed bin Saeed Al Maktoum[2](Pendiri & Direktur Utama)Tim Clark (Presiden)ProdukPenerbangan penumpang (Emirates)Kargo (Emirates SkyCargo)Layanan maskapai (Dnata)Katering Maskapai (Emirates Flight Catering)JasaLayanan maskapai penerbanga...

Baby DollGenre Drama Remaja PembuatSinemArtDitulis olehAlberthiene EndahSkenarioAlberthiene EndahSutradaraIsmail Sofyan SaniPemeran Alyssa Soebandono Rionaldo Stockhorst Glenn Alinskie Gita Prisilfia Paola Tobing Cut Keumala Stephanie Hariadi Fuad Zulkarnaen Yadi Timo Penggubah lagu temaUtopiaLagu pembukaBaby Doll oleh UtopiaLagu penutupBaby Doll oleh UtopiaNegara asalIndonesiaBahasa asliBahasa IndonesiaJmlh. musim1Jmlh. episode11ProduksiProduser eksekutifElly Yanti NoorProduserLeo SutantoPe...

 

Norwegian footballer and manager (1941–2022) Nils Arne Eggen Personal informationDate of birth (1941-09-17)17 September 1941Place of birth Orkdal, NorwayDate of death 19 January 2022(2022-01-19) (aged 80)Place of death Orkdal, NorwayPosition(s) DefenderSenior career*Years Team Apps (Gls) Orkdal 1960–1963 Rosenborg 1964–1966 Vålerengen 1966–1969 Rosenborg International career1963–1969 Norway 29 (0)Managerial career1971–1972 Rosenborg1973–1974 Norway U211974–1977 Norway197...

 

1976 film by Claude Chabrol The TwistDVD coverDirected byClaude ChabrolScreenplay byClaude ChabrolEnnio de ConciniNorman EnfieldBased onLe Malheur Fouby Lucie FaureProduced byAlexander SalkindIlya SalkindPierre SpenglerStarringBruce DernStéphane AudranAnn-MargretCinematographyJean RabierEdited byMonique FardoulisMusic byManuel De SicaProductioncompaniesBarnabeCentral Cinema Company Film (CCC)GloriaRelease date June 23, 1976 (1976-06-23) Running time107 minutesCountriesFranceIt...

Insediamento delle popolazioni baltiche nel secolo XII. Balti orientali in marrone, Balti occidentali in verde I Pruzzi (Pruzzen) o Prussi[1] (Prußen), da cui Prussiani (Preußen) o, ancora, Pruteni, erano una popolazione del gruppo dei Balti occidentali, parlanti la lingua prussiana, originariamente insediata tra i fiumi Nemunas e Minge. La Prussia venne così chiamata ispirandosi al loro nome, anche se successivamente alla loro scomparsa e sostituzione con popolazioni tedesche port...

 

Edward Antony (8 Oktober 1960 – 16 Agustus 2020) adalah seorang politikus Indonesia. Ia menjabat sebagai Wakil Bupati Way Kanan periode 2016-2020. Ia menempuh pendidikan di SD Kristen Bandar Jaya Lampung Tengah, SMPN Poncowati Lampung Tengah, dan SMEA Muhammadyah Kota Metro. Iia melanjutkan pendidikan ke jenjang perguruan tinggi di S1 PLS di STKIP Muhammadyah Kotabumi Lampung Utara, S2 di STIE IPWI Jakarta, dan S3 di Universitas Padjajaran Bandung. Dia juga mengenyam pendidika...

 

English composer, organist and singer For other people named William Savage, see William Savage (disambiguation). William Savage (1720 – 27 July 1789) was an English composer, organist, and singer of the 18th century. He sang as a boy treble and alto, a countertenor, and as a bass. He is best remembered for his association with the composer George Frideric Handel, in whose oratorios Savage sang. Life and career Savage married Mary Bolt (1718-1788), and together they had three children. Will...

A Taoist qigong or tao yin qi energy cultivation technique Gathering the Light, Taoist meditation from The Secret of the Golden Flower The microcosmic orbit (小周天), also known as the Self Winding Wheel of the Law, is a Taoist qigong energy cultivation technique. It involves deep breathing exercises in conjunction with meditation and concentration techniques which aim to develop the flow of qi along certain pathways of energy in the human body which may be familiar to those who are studyi...

 

هنودمعلومات عامةنسبة التسمية الهند التعداد الكليالتعداد قرابة 1.21 مليار[1][2]تعداد الهند عام 2011ق. 1.32 مليار[3]تقديرات عام 2017ق. 30.8 مليون[4]مناطق الوجود المميزةبلد الأصل الهند البلد الهند  الهند نيبال 4,000,000[5] الولايات المتحدة 3,982,398[6] الإمار...

 

Para otros usos de este término, véase Mendicidad. Este artículo o sección necesita referencias que aparezcan en una publicación acreditada. Busca fuentes: «Mendigos del mar» – noticias · libros · académico · imágenesEste aviso fue puesto el 9 de agosto de 2009. Mendigos del mar (en neerlandés: watergeuzen) era el nombre que se daba en Flandes a los piratas, y así se les conoció desde 1566 a los habitantes de los Países Bajos que se opusieron a la adminis...

American TV series or program Happening NowHappening Now with Jon Scott and Jenna LeeGenreTalk/News programPresented byJon ScottJenna LeeCountry of originUnited StatesOriginal languageEnglishProductionProduction locationNew York CityCamera setupMulti-cameraRunning time60 minutesOriginal releaseNetworkFox News ChannelReleaseNovember 5, 2007 (2007-11-05) –June 8, 2018 (2018-06-08) Happening Now was an American news-talk television program that aired on Fox News Channel from No...

 

School in New York City Main building at 225 East 43rd Street Lyceum Kennedy International School is an international school occupying two buildings in Midtown Manhattan, New York City.[1] It serves preschool through grade 12.[2] The school was named after President of the United States John F. Kennedy.[3] Founded in 1964, Lyceum Kennedy French American school serves the needs of French and francophone families living in New York. It has a French language K-12 day scho...

 

Member Bank of Federal Reserve Federal Reserve Bank of MinneapolisFederal Reserve SealHeadquartersHeadquarters90 Hennepin AvenueMinneapolis, Minnesota, USAEstablishedMay 18, 1914 (110 years ago) (1914-05-18)PresidentNeel KashkariCentral bank of Ninth District  Minnesota  Montana  North Dakota  South DakotaParts of:  Michigan  Wisconsin Websitewww.MinneapolisFed.orgThe Federal Reserve Bank of Minneapolis is one of 12 regional banks that mak...

PFK Spartak-Nal'čikCalcio инопланетяне (alieni) Segni distintiviUniformi di gara Casa Trasferta Colori socialibianco e rosso Dati societariCittàNal'čik Nazione Russia ConfederazioneUEFA Federazione RFU Fondazione1935 PresidenteChazratli Berdov StadioStadio Spartak(14.400 posti) Sito webwww.spartak-nalchik.ru PalmarèsSi invita a seguire il modello di voce Lo Spartak-Nal'čik, ufficialmente Professional'nyj Futbol'nyj Klub Spartak-Nal'čik (in russo Профессио�...

 

Medical condition in plants For the form of anemia, see Hypochromic anemia. An albino corn plant with no chlorophyll (left) beside a normal plant (right) In botany, chlorosis is a condition in which leaves produce insufficient chlorophyll. As chlorophyll is responsible for the green color of leaves, chlorotic leaves are pale, yellow, or yellow-white. The affected plant has little or no ability to manufacture carbohydrates through photosynthesis and may die unless the cause of its chlorophyll ...

 

اتحاد أوقيانوسيا لكرة السلة ‌ المقر الرئيسي كانبرا، أستراليا تاريخ التأسيس 1969 منطقة الخدمة جزيرة أوقيانوسيا  العضوية 21 اللغات الرسمية الإنجليزية الموقع الرسمي www.fiba.basketball/oceania تعديل مصدري - تعديل   اتحاد أوقيانوسيا لكرة السلة أو فيبا أوقيانوسيا (بالإنكليزية: FIBA Oceania) ...

Sports mask protecting the head and face James Reimer wearing a goaltender mask Braden Holtby wears a goaltender mask, protecting his head from an incoming shot on goal from Bryan Rust. A goaltender mask, commonly referred to as a goalie mask, is a mask worn by goaltenders in a variety of sports to protect the head and face from injury from the ball or puck, as they constantly face incoming shots on goal. Some sports requiring their use include ice hockey, lacrosse, inline hockey, field hocke...

 

Human settlement in EnglandHinton-in-the-HedgesHoly Trinity Church, Hinton in the HedgesHinton-in-the-HedgesLocation within NorthamptonshirePopulation179 [1]167 (2011 census)OS grid referenceSP5536• London70 mi (110 km)Unitary authorityWest NorthamptonshireCeremonial countyNorthamptonshireRegionEast MidlandsCountryEnglandSovereign stateUnited KingdomPost townBrackleyPostcode districtNN13Dialling code01280PoliceNorthamptonshireF...