OpenSceneGraph - OpenSceneGraph
![]() | |
| kararlı sürüm | 3.6.5 / 31 Ocak 2020
|
|---|---|
| depo |
|
| Yazılmış | C++ |
| İşletim sistemi | Çapraz platform |
| Tip | 3D grafikler |
| Lisans | OpenSceneGraph Kamu Lisansı ( LGPL tabanlı) |
| İnternet sitesi |
www www |
OpenSceneGraph , görsel simülasyon , bilgisayar oyunları , sanal gerçeklik , bilimsel görselleştirme ve modelleme gibi alanlarda uygulama geliştiricileri tarafından kullanılan açık kaynaklı bir 3D grafik uygulama programlama arayüzüdür (kütüphane veya çerçeve) .
Araç seti, OpenGL kullanılarak standart C++ ile yazılmıştır ve Microsoft Windows , macOS , Linux , IRIX , Solaris ve FreeBSD dahil olmak üzere çeşitli işletim sistemlerinde çalışır . 3.0.0 sürümünden bu yana OpenSceneGraph, iOS ve Android gibi mobil platformlar için uygulama geliştirmeyi de destekler .
2021 olarak projenin yerini Vulkan tabanlı bir kütüphane olan VulkanSceneGraph projesi alıyor. OpenSceneGraph, 2019'dan beri bakım aşamasındadır.
Tarih
OpenSceneGraph projesi 1998'de Don Burns tarafından başlatıldı. Robert Osfield projeye 1999 yılında katılarak Microsoft Windows için bitmiş bileşenlerin taşınması üzerinde çalıştı. Proje Eylül 1999'da açık kaynağa geçti ve resmi proje web sitesi oluşturuldu. Yılın sonuna doğru Osfield projeyi devraldı ve mevcut kod tabanını kapsamlı bir şekilde yeniden düzenlemeye başladı, modernizasyona vurgu yaptı, modern C++ standartlarını ve tasarım modellerini kucakladı .
Nisan 2001'de, büyüyen kullanıcı topluluğu ve halkın ilgisini dikkate alan Robert Osfield, ticari destek, danışmanlık ve eğitim hizmetleri sağlayan OpenSceneGraph Profesyonel Hizmetlerini oluşturdu. Bu, projenin tam profesyonelleştiğini gösterir.
OpenSceneGraph'ın ilk resmi kararlı sürümü, 2005'te yayınlanan sürüm 1.0'dı. Bunu 2007'de, çok çekirdekli ve çoklu gpu sistemleri, birkaç önemli NodeKits ve birleşik çok platformlu yapı sistemi CMake kullanımı için destek ekleyen, genişletilmiş bir sürüm 2.0 izledi . Kitaplar ve kullanıcı el kitapları tanıtıldı.
Proje o zamandan beri hızla büyüyor ve daha popüler hale geliyor. Mevcut kararlı sürüm altında imzalanmış 530'dan fazla katılımcı var ve resmi posta listesi binlerce isim içeriyor.
2019 yılında, proje bir bakım aşamasına taşındı ve ana geliştirme çalışması, halefi VulkanSceneGraph projesine yönlendirildi.
Özellikleri
1.0 sürümündeki özellikler:
- Zengin özelliklere sahip ve yaygın olarak benimsenen bir sahne grafiği uygulaması
- Performans artırıcı özellikler için destek
- Frustum , küçük özellik ve oklüzyon ayırmayı görüntüleyin
- ayrıntı düzeyi
- Durum sıralama ve tembel durum güncelleme
- OpenGL hızlı yolları ve en yeni uzantılar
- Çoklu iş parçacığı ve veritabanı optimizasyonu
- En son uzantılar dahil olmak üzere 1.1'den 2.0'a kadar OpenGL desteği
- 3Dlabs ile birlikte geliştirilen OpenGL Shading Language için sıkı bir şekilde birleştirilmiş destek
- OpenFlight , TerraPage , OBJ , 3DS , JPEG , PNG ve GeoTIFF gibi formatlar için kullanılabilen yükleyiciler ile çok çeşitli 2B görüntü ve 3B veritabanı formatları için destek
- parçacık etkileri
- Kenar yumuşatılmış TrueType metni desteği
- Kesintisiz destek çerçeve belleği nesneleri, pbuffers ve çerçeve tamponu işlemek-için-doku etkisi
- Tüm 3B veritabanı ve görüntü yükleyicilerle birlikte kullanılabilen çok iş parçacıklı veritabanı sayfalama desteği
- Büyük ölçekli, tüm dünya jeo-uzamsal arazi disk belleği veritabanı oluşturma
- Harici uygulamaların genel bir arabirim aracılığıyla sahne grafiğindeki tüm sınıfları sorgulamasına, almasına, ayarlamasına ve çalıştırmasına izin veren çekirdek kitaplıklar için iç gözlem desteği
- Çoklu CPU/çoklu GPU makineleri için çoklu iş parçacıklı ve yapılandırılabilir destek
2.8.3 sürümündeki özellikler
- Mac OS X 10.6 (Snow Leopard) desteği
- Mac OS X'te ImageIO desteği
- 3DS dosya formatı dışa aktarma ve dosya dönüştürme
- Entegre Autodesk FBX teknolojisi
- 3D uygulamalarda video dosyası içeriğini görüntülemek için entegre FFmpeg desteği.
- PLY dosya formatı desteği
2.8.4 sürümündeki özellikler:
- VS2010 yapı desteği
3.0.0 sürümündeki özellikler:
- OpenGL ES 1.1 ve OpenGL ES 2.0 desteği
- İlişkili OpenGL uzantılarıyla birlikte OpenGL 3.x ve 4.x desteği
- Tabletlerde ve telefonlarda Android desteği
- Tabletlerde ve telefonlarda IOS desteği (son kullanıcı başvuruları App Store'da zaten kabul edilmiştir)
- Sürükleyici 3D sunumlar için Present3D uygulamasının tanıtımı
- Yeni .osgb ikili, .osgt ascii ve .osgx xml dosyası yerel biçimleri sağlayan yeni genişletilebilir serileştiriciler
- Yeni genelleştirilmiş serileştirilebilir meta veri mimarisi
- !OpenSceneGraph'ı Qt ile, QWebKit aracılığıyla web'de gezinme de dahil olmak üzere, doğrudan entegre etmeyi sağlayan yeni osgQt kitaplığı.
- .fbx 3D geliştirme ve değişim formatının okunmasını sağlayan Audodesk FBX DSK tabanlı yeni FBX eklentisi
- Filmleri Windows altında işlemek için yeni directshow eklentisi
- Bir sahneyi POV-Ray formatına aktarmak için yeni pov eklentisi, foto-gerçekçi ışın izleme yapmak için POV-Ray kullanımına olanak tanır
- Kat dosyalarını okumak için yeni kat eklentisi
- .3ds dosyalarını okumak ve yazmak için yenilenmiş 3ds eklentisi
- .dxf dosyalarını okumak ve yazmak için yenilenmiş dxf eklentisi
- Kakao ve 64bit OSX yapısı için destek
Kararlı Sürüm Yayın Geçmişi
| Sürüm | Yayın tarihi |
|---|---|
| 3.0 | 5 Şubat 2013 |
| 3.2 | 24 Temmuz 2013 |
| 3.4 | 20 Temmuz 2015 |
| 3.4.1 | 28 Ağustos 2017 |
| 3.6 | 7 Nisan 2018 |
| 3.6.1 | 28 Mayıs 2018 |
| 3.6.2 | 29 Haziran 2018 |
| 3.6.3 | 14 Eylül 2018 |
| 3.6.4 | 26 Temmuz 2019 |
| 3.6.5 | 31 Ocak 2020 |
Mimari
Kitaplık mimarisi üç ana alt kümeye ayrılabilir - temel OpenSceneGraph kitaplığı, osgViewer ve bir dizi NodeKits.
Çekirdek
OpenSceneGraph kitaplığının tabanı ayrıca dört ana modüle ayrılabilir.
osg
OpenSceneGraph'ın çekirdeği , sahne grafiğinin oluşturulması ve işlenmesi için sınıflar ve yöntemler sağlar . Çeşitli düğüm türlerini , sahne geometrisini, OpenGL durum soyutlamasını, geometrik dönüşümleri ve ayrıca 2B ve 3B vektör ve matris işlemleri için matematiksel sınıfları temsil eden sınıfları içerir . Gelişmiş bellek yönetimi de dahildir.
Konuları Aç
OpenSceneGraph projesi, hafif bir platformlar arası iş parçacığı modeli olan OpenThreads adlı bir iş parçacığı kitaplığı içerir . C++ programcıları için minimal ve eksiksiz bir Nesne Yönelimli (OO) iş parçacığı arabirimi sağlamayı amaçlamaktadır . Java thread API ve POSIX Threads standartları üzerinde gevşek bir şekilde modellenmiştir .
Mimari OpenThreads en tanımlanır "değiştirilebilen" iplik modelleri etrafında tasarlanmıştır derleme zamanında bir de paylaşılan nesne kitaplığına . Genel arayüz hedefine ulaşmak için bir fabrika desen tasarımı kullanılabilirken , programcının 4 temel türden (İplik, Mutex, Bariyer ve Durum) her birini atamasını gerektireceğini belirtmek önemlidir. yığın . Bazı platformlarda bu yapıların temel somut uygulamalarının yığın tahsisi ile ilişkili maliyet nedeniyle, bu tahsisat, bu kütüphanenin orijinal olarak yazıldığı zamanda kabul edilemez olarak kabul edildi ve bu nedenle fabrika modeli kullanılmadı.
Bunun yerine, gerekli veri/uygulama gizlemesini sağlamak için biraz karmaşık ama etkili bir teknik seçilmiştir . Bu teknik, nesne özel verilerini kapsüllemek için özel boşluk işaretçilerini kullanır . Void işaretçileri aslında somut veri yapılarına işaret eder, ancak dso'ya tek tip bir arayüz sağlar.
OpenThreads'in tasarım amacı , IRIX'te kullanılan sproc yöntemleri ve Windows iş parçacıkları gibi platform için optimize edilmiş çoklu işleme yapıları kullanarak optimize edilmiş uygulamalar oluşturmaktır .
osgUtil
osgUtil içerir oluşturma arka uç özelliğe ve yardımcı sahne bakımı grafik geçişi , işleme optimizasyonu ve bir akımı içine sahne transforme OpenGL API çağrıları. Ayrıca nesne seçme gibi sahne ile temel etkileşim araçları sağlar.
osgDB
Bu kitaplık, 3B model dosyalarını yüklemekle görevlidir. Birçok 2D/3D veri formatı manipülatörünü destekler . 50'den fazla farklı format desteklenir - en yaygın olanı COLLADA (.dae), LightWave (.lwo), Wavefront (.obj), OpenFlight (.flt), 3D Studio Max (.3ds), DirectX gibi 3D veri formatlarıdır. (.x) ve diğerleri. OpenSceneGraph ayrıca kendi yerel ASCII .osg biçimini de sağlar . Blender , Maya ve 3D Studio MAX için .osg formatına aktarıcılar mevcuttur .
Desteklenen resim biçimleri arasında .rgb, .gif , .jpg , .png , .tiff , .pic, .bmp , .dds , .tga ve quicktime bulunur .
Bu modül ayrıca G/Ç cihaz soyutlaması sağlar. Diğer dosya formatı yükleyici eklentileri osgDB'ye kayıtlıdır.
osgGA
Bu, farklı platformlar için gerekli bir GUI soyutlama kitaplığıdır.
osgViewer
osgViewer Kitaplığı , grafik sahnesini görselleştirmenin hızlı ve kolay bir yolunu sağlar . Ayrıca çeşitli pencere sistemi arayüzleri için platformdan bağımsız bir soyutlamadır .
osg Yapımcı
OSG ayrıca , çoklu grafik bağlamlarını ve çoklu iş parçacığını destekleyen platformdan bağımsız bir görüntüleyici olan bir osgProducer ile birlikte gönderilir .
Düğüm Kitleri
Proje dağıtımı ayrıca çeşitli NodeKits içerir . Bunlar, yaygın sorunların ve sıklıkla kullanılan daha gelişmiş 3B uygulama bileşenleri ve grafik algoritmalarının çözümleridir. En önemlileri arasında
- osgAnimation — İskelet modellerinin kullanımı, canlandırılması ve biçim değiştirmesi.
- osgFX - Özel efektler ve görüntü son işleme.
- osgManipulator — Etkileşimli 3B sahne işleme.
- osgParticle — Gelişmiş parçacık sistemi kullanımı.
- osgQt — Qt araç takımı ile entegrasyon ve QtGUI öğelerinin OSG uygulamalarına dahil edilmesi.
- osgShadow — Gölge oluşturma teknikleri için çerçeve.
- osgTerrain — Kapsamlı arazi oluşturma .
- osgText - Kaliteli kenar yumuşatılmış yazı tipleri, TrueType ve FreeType yazı tipi desteği.
- osgVolume — Hacim oluşturma ve hacimsel veri işleme.
- osgWidget — Basit GUI oluşturma.
Kabul ve evlat edinme
OpenSceneGraph, daha yüksek "oyun" mantığı için herhangi bir işlevsellik sağlamaz, yalnızca oluşturma aracıdır. OSG'yi grafik oluşturma temeli olarak kullanarak bilgisayar oyunları (veya ciddi oyunlar olarak adlandırılan ) oluşturma için birkaç tam ölçekli motor vardır , en yaygın çerçeve Delta3D'dir .
OpenSceneGraph üzerine kurulmuş çok çeşitli yazılım ürünleri vardır; diğerleri arasında Virtual Terrain Project ve ViewTec TerrainView . OSG kullanıcılarının listesi Boeing , NASA , FlightGear , Norcontrol ve diğerleri gibi şirketleri içerir .
Açık kaynak topluluğu düzeyinde, birkaç proje, arka uç oluşturma olarak OSG'yi benimsemiştir:
- FlightGear (Uçuş Simülasyon yazılımı)
- OpenMW ( Morowind için açık kaynak motoru)
OpenSceneGraph, Sketchfab ve Clara.io dahil olmak üzere birçok çevrimiçi 3D sahne görüntüleyicisi tarafından kullanılan OSG.JS adlı bir javascript/WebGL uygulaması aldı .
Emscripten OGStudio aracılığıyla C++'dan javascript'e bir sarmalama da şu anda geliştirilmiştir.
OSG kullanan diğer ürünler arasında şunlar belirtilmelidir:
- Remo 3D OSG Sahne Düzenleyici
- http://www.palomino3d.org/
Ayrıca bakınız
- OSG.JS
- OpenGL
- OGRE
- Delta3D
- Irrlicht Motoru
- Kristal Uzay
- Görselleştirme Kitaplığı
- Açık SG
- ossimPlanet
- Grome
- Mucit'i aç
- Birlik (oyun motoru)
Referanslar
Dış bağlantılar
-
www
.openscenegraph - proje için resmi web sitesi.org - AlphaPixel OSG Binaries - Windows, Mac ve Linux x86 ve x64 önceden derlenmiş ikili dosyalar.
- SigmaOSG - OpenSceneGraph Eğitimleri (eski OSGHelp sitesinden önceki tüm OSGHelp materyallerini içerir)
- 3D Yazılım Geliştirme için Sahne Grafikleri ve Açık Sahne Grafiği
- OpenSceneGraph - www.OpenGL.org adresindeki kitaplık bilgileri web sayfası (tanıtılan dört kitaplıktan biri)
