Skip to content

Latest commit

 

History

History
135 lines (111 loc) · 16.3 KB

File metadata and controls

135 lines (111 loc) · 16.3 KB
layout page
title OpenSceneGraph to VulkanSceneGraph
permalink /scenegraph/osg2vsg

Smart pointers

OSG VSG Notes
osg::ref_ptr<T> vsg::ref_ptr<T>
osg::observer_ptr<T> vsg::observer_ptr<T>

Base classes

OSG VSG Notes
osg::Referenced vsg::Object
osg::Object vsg::Object
META_Object, META_Node vsg::Inherit<T> OSG uses C macros while VSG uses Curiously Recurring Template Pattern
vsg::Allocator Only VSG has memory allocator.

Data classes

OSG VSG Notes
vsg::Data Base class with no OSG equivalent
osg::Image vsg::Value<T>, vsg::Array<T>, vsg::Array2D<>, vsg::Array3D<T>
osg::Uniform vsg::Value<T>, vsg::Array<T>, vsg::Array2D<>, vsg::Array3D<T>
osg::Array<T> vsg::Array<T>
osg::IndexArray<T> vsg::Array<T>

Scene graph nodes

OSG VSG Notes
osg::Node vsg::Node
osg::Group vsg::Group
osg::Switch vsg::Switch
osg::LOD vsg::LOD
osg::PagedLOD vsg::PagedLOD
osg::Transform vsg::Transform Both base classes for providing model transforms
osg::MatrixTransform vsg::MatrixTransform
osg::MatrixTransform vsg::AbsoluteTransform osg::MatrixTransform::setReferenceFrame(ABSOLUTE_RF) equivalent to vsg::AbsoluteTransform
osg::PositionAttitudeTransform No VSG equivalent
osg::AutoTransform No VSG equivalent
osg::Billboard No VSG equivalent - use instanced geometry and vertex shader.

Geometry

OSG VSG Notes
osg::Drawable vsg::Command
osg::Geometry vsg::Geometry
osg::DrawArrays vsg::Draw
osg::DrawElements vsg::DrawIndexed
vsg::Commands No OSG equivalent.
vsg::VertexDraw No direct OSG equivalent, closest is osg::Geometry
vsg::VertexIndexDraw No OSG equivalent, closest is osg::Geometry.
vsg::BindVertexBuffers No OSG equivalent.
vsg::BindIndexBuffers No OSG equivalent.

State

OSG VSG Notes
osg::StateSet vsg::StateGroup osg::Group with an osg::StateSet is broadly similar to vsg::StateGroup
osg::StateAttribute vsg::StateCommand Both are state base classes, but only vaguely similar
osg::Texture, osg::Texture1D, osg::Texture2D, osg::Texture3D, osg::TextureCubeMap, Texture2DArray vsg::DescriptorImage, vsg::ImageView, vsg::Image No direct mapping but together fulfill the same role.
osg::Uniform vsg::DescriptorBuffer
osg::Light, osg::LightSource vsg::Light, vsg::AmbientLight, vsg::DirectionalLight, vsg;:PointLight, vsg::SpotLight

Text

OSG VSG Notes
osgText::Font vsg::Font
osgText::Text vsg::Text
osgText::Text3D No VSG equivalent
vsg::TextGroup No OSG equivalent for efficient rendering of large number of labels

IO

OSG VSG Notes
osgDB::readObjectFile(..) vsg::read(..)
osgDB::readNodeFile(..) vsg::read_cast<vsg::Node>(..)
osgDB::readImageFile(..) vsg::read_cast<vsg::Data>(..)
osgDB::writeObjectFile(..) vsg::write(..)
osgDB::writeNodeFile(..) vsg::write(..)
osgDB::writeImageFile(..) vsg::write(..)
osgDB::Options vsg::Options
osgDB::FileCache vsg::Options::fileCache
osgDB::ObjectCache vsg::SharedObjects
osgDB::ReaderWriter vsg::ReaderWriter
osgDB::Registry vsg::ObjectFactory
std::string & UTF8 vsg::Path OSG must be compiled with OSG_USE_UTF8_FILENAME, vsg::Path works like std::filesystem::path
osgDB::DatabasePager vsg::DatabasePager

Application

OSG VSG Notes
osg::Camera vsg::Camera
osgViewer::View vsg::View
osgViewer::Viewer vsg::Viewer
osgViewer::CompositeViewer vsg::Viewer
osgGA::TrackballManipulator vsg::Trackball
vsg::CommandGraph No OSG equivalent
vsg::RenderGraph No OSG equivalent
vsg::RecordAndSubmitTask No OSG equivalent
vsg::ExecuteCommands No OSG equivalent

Threading

OSG VSG Notes
OpenThreads::Thread std::thread
OpenThreads::Mutex std::mutex
OpenThreads::ScopedLock std::lock_guard
OpenThreads::Atomic std::atomic
OpenThreads::Condition std::condition_variable
OpenThreads::Barrier vsg::Barrier
OpenThreads::Block vsg::Latch
OpenThreads::Affinity vsg::Affinity
osg::OperationThread vsg::OperationThread
osg::OperationThread vsg::OperationQueue
osg::Operation vsg::Operation
vsg::ActivityStatus No OSG equivalent, used to cooperatively release barriers & blocks.
vsg::FrameBlock No direct OSG equivalent, loosely OpenThreads::Block.

Prev : Ray Tracing | Next: Next Chapter : Application