Fact-checked by Grok 2 weeks ago

Scene graph

A scene graph is a directed acyclic graph (DAG) data structure commonly used in computer graphics to represent the logical and often spatial organization of a three-dimensional scene, consisting of interconnected nodes that define objects, their attributes, and hierarchical relationships. It enables efficient management and traversal of complex scenes by abstracting low-level rendering details, such as those in APIs like OpenGL or Direct3D, allowing developers to focus on high-level composition rather than individual draw calls. The structure of a scene graph typically features a root node from which subgraphs branch out, with nodes categorized as either grouping nodes (which contain child nodes for ) or nodes (terminal elements like geometry, lights, or cameras). Transformations, such as rotations and translations, are applied hierarchically, accumulating down the to and child elements relative to their parents, which facilitates modeling articulated objects like robot arms or solar systems. This design supports features like instancing—where multiple references to the same allow shared modifications—and batching of similar properties to optimize rendering performance. Originating in the late with Inc.'s (SGI) IRIS Inventor toolkit, the scene graph concept provided a foundational for programming and influenced standards like VRML () in 1997 and its successor for web-based content. Today, scene graphs underpin numerous applications, including real-time rendering in game engines (e.g., , ), computer-aided design software, and systems, where they enable dynamic scene updates, animation, and interaction without rebuilding entire models.

Fundamentals

Definition and Core Concepts

A scene graph is a directed acyclic graph (DAG) or tree-like data structure commonly employed in computer graphics to represent and manage the elements of a 3D scene, with nodes denoting components such as geometry, lights, cameras, and transformations. This structure establishes hierarchical relationships among scene elements, enabling the definition of spatial arrangements and dependencies in a modular fashion. The core purposes of a scene graph revolve around facilitating efficient and manipulation of complex scenes for tasks like rendering, , and interactive applications, while inherently supporting hierarchical transformations that propagate changes through parent-child relationships and techniques such as view frustum culling to optimize computational resources. By structuring data hierarchically, it allows developers to handle scene updates and traversals more effectively than non-hierarchical approaches, promoting reusability and in pipelines. A basic example of a scene graph is a simple where a root serves as the top-level container, branching to transformation nodes that apply , , or to subgroups, and terminating in nodes representing such as meshes or . This setup illustrates how the graph encapsulates the entire scene description in a traversable form. Compared to flat lists of scene elements, scene graphs offer key advantages, including reduced data redundancy through shared subgraphs in configurations—where identical substructures can be referenced multiple times without duplication—and simplified management of intricate, hierarchical scenes that involve nested objects and behaviors.

Node Types and Transformations

Scene graphs organize scene elements through a variety of node types, each serving specific roles in defining , , properties, and rendering behaviors. Group nodes act as containers to establish hierarchical relationships among other , allowing complex scenes to be built by nesting substructures. Transform nodes specify local changes in position, orientation, and , typically using 4x4 matrices for , , and scaling operations. Geometry nodes represent drawable or meshes, such as spheres or polygons, which define the visual shapes in the scene. Light nodes configure illumination sources, including parameters like intensity, color, and position for point, directional, or spot lights. Camera nodes define viewpoints and projection settings, such as or orthographic views, to determine how the scene is observed. Switch nodes enable conditional rendering by selecting which child nodes to include or exclude based on an index or state, facilitating dynamic scene management. Transformations in a scene graph propagate hierarchically from parent to child nodes, converting local coordinates to world coordinates through successive matrix operations. Each node's local transformation matrix T_{local} is combined with its parent's world transformation T_{parent} via matrix multiplication to yield the child's world transformation: T_{world} = T_{parent} \times T_{local} This process accumulates along the path from the root, ensuring that child elements inherit and compose transformations relative to their ancestors. To optimize memory and performance, scene graphs often employ directed acyclic graphs (DAGs) for handling shared subgraphs, allowing multiple parents to reference the same child subgraph without duplication. This instancing mechanism supports efficient reuse of complex elements, such as repeated models in a scene. For instance, in a character model, an arm subgraph—comprising geometry and transform nodes—attaches as a child to the body node; the arm's local rotation inherits the body's world position, enabling coordinated movement through hierarchical propagation.

History and Evolution

Origins in Early Graphics Systems

The concept of hierarchical structures in computer graphics, a foundational element of scene graphs, traces its origins to Ivan Sutherland's Sketchpad system developed in 1963 at MIT. Sketchpad introduced a mechanism for organizing drawings through "master drawings" and "instances," where subpictures defined in a master could be reused and instantiated multiple times, connected via pointers to ensure changes in the master propagated to all instances. This hierarchical approach allowed transformations like scaling and rotation to be applied at any level, enabling efficient manipulation and display of complex compositions, serving as a conceptual precursor to modern scene graphs. Early standardization efforts in the 1970s built on these ideas through the Graphics Standards Planning Committee (GSPC) of . The system, outlined in the GSPC's 1977 status report, proposed a device-independent package emphasizing display lists for retaining and replaying graphical primitives, facilitating more structured scene management over purely immediate-mode rendering. Although the 1977 CORE excluded full hierarchical display lists—influenced by earlier systems like GPGS at , which supported such hierarchies—the GSPC's ongoing work by 1979 aimed to incorporate standardized hierarchical structures to handle complex scenes more effectively. These developments at universities, including pioneering research at the () and Stanford, further explored hierarchical modeling in experimental systems during the late 1970s. A major milestone came in the 1980s with the Programmer's Hierarchical Interactive Graphics System (PHIGS), the first formal standard explicitly supporting scene graph-like structures for retained-mode graphics. Developed starting in 1984 and standardized by ISO in 1989 as ISO 9592, PHIGS introduced a "structure store" that organized graphical elements into editable hierarchies of primitives and transformations, allowing applications to build, traverse, and modify scenes independently of immediate rendering commands. This retained-mode paradigm shifted from the immediate-mode approaches of earlier systems, where graphics were drawn on-the-fly without persistent data structures, enabling better efficiency for interactive 3D applications.

Development in Modern Graphics APIs

The development of scene graphs in modern graphics APIs began in the 1990s with Inc.'s (SGI) , the first commercial toolkit providing an object-oriented, retained-mode for 3D graphics built initially on IRIS GL and subsequently ported to . This library abstracted complex graphics operations into a hierarchical structure of nodes, enabling developers to manage scenes more intuitively without direct manipulation of low-level drawing commands. Building on this foundation, was released in 1999 as an open-source C++ library, delivering high-performance scene graph capabilities optimized for real-time rendering in domains like visual simulations, , and . It extended the scene graph paradigm by supporting cross-platform deployment and efficient traversal for large-scale scenes, becoming a staple in professional applications requiring robust 3D management. Scene graphs evolved to abstract calls to underlying APIs such as and , facilitating portability and simplifying development in game engines. Unity, for example, incorporates an internal scene graph as a hierarchical to organize 3D objects, transformations, and rendering across backends like , , and . Likewise, employs a scene graph-like hierarchy of actors and scene components to manage spatial relationships and abstract low-level rendering, supporting high-fidelity graphics via and other APIs. By 2025, scene graphs have influenced web-based rendering through , a that structures scenes using a root Scene object and Object3D hierarchies to handle transformations and rendering efficiently in browsers. In high-performance contexts, VulkanSceneGraph provides a modern C++ scene graph directly layered on for cross-platform, GPU-accelerated applications demanding low overhead. Similarly, Apple's SceneKit offers a high-level scene graph built atop Metal, enabling optimized 3D rendering with features like physics integration and asset manipulation for and macOS ecosystems.

Implementation

Data Structures and Operations

Scene graphs are typically implemented as directed acyclic graphs (DAGs), where s represent scene elements and directed edges denote parent-child relationships. The hierarchical structure is often stored using adjacency lists, with each maintaining a list of pointers or handles to its s, enabling efficient of the parent-child links. For example, in Open Inventor, s are created with the new operator and linked via pointers, while employs a similar pointer-based system for connecting Group and s in the DAG. for dynamic scenes relies on handle-based references or smart pointers to track lifetimes, particularly in resource-constrained environments where scenes evolve in . Core operations facilitate building and modifying the . Node creation involves instantiating objects via constructors or factory methods, such as new SoGroup() in Open Inventor or constructing node instances. Deletion is handled automatically through , where a node's reference count decrements upon detachment, triggering deallocation when it reaches zero (e.g., via unref() in Open Inventor). Attachment and detachment use methods like addChild() and removeChild() to link or unlink subgraphs, preserving the DAG structure while updating parent pointers. Cloning subgraphs allows reuse without duplication, as seen in 's cloneTree() method, which supports options for deep copying or shared referencing to maintain efficiency. Update propagation for changes, such as transformations, occurs recursively from parents to children, ensuring consistent state across the (e.g., via Update() calls in scene graph implementations). Dispatch mechanisms route events through the hierarchy to handle user interactions. In standards like and , events are sent and received via s (e.g., TouchSensor), with routing defined by the to propagate actions like clicks from leaves to ancestors. Java 3D employs s for dynamic event responses, dispatching updates based on the scene graph's traversal order during rendering. Performance considerations emphasize efficient sharing of subgraphs to avoid redundancy. for shared s, where a single can have multiple parents in the DAG, prevents memory leaks by tracking usage across references—deletion only occurs when all parents release the , as implemented in Open Inventor and implied in 's cloning flags. This approach minimizes memory overhead in complex scenes while supporting dynamic modifications without excessive copying.

Traversal Algorithms

Scene graph traversal algorithms enable systematic navigation of the hierarchical structure to execute operations such as rendering, querying, and optimization across nodes and their transformations. These algorithms typically process the graph starting from the , applying accumulated like transformation matrices to subtrees, and dispatching node-specific behaviors. Traversal is essential for efficiency in pipelines, as it allows selective without redundant computations. Common traversal types include depth-first and breadth-first approaches, with implementations varying between recursive and iterative methods. Depth-first traversal, often in pre-order (visiting the node before its children), is standard for rendering, as it mirrors the hierarchical application of transformations from parent to child, enabling immediate drawing of geometry after state updates. This involves recursively descending into subtrees left-to-right, maintaining a current transformation state S updated as S \leftarrow S \times T for each transformation node T, then backtracking to restore prior states via a stack. Breadth-first traversal, processing nodes level-by-level using a queue, suits querying operations like finding all lights in the scene, as it avoids deep recursion in wide graphs. Recursive implementations leverage the call stack for simplicity but risk overflow in deep hierarchies; iterative versions use explicit stacks or queues for control and scalability in large scenes. Key algorithms include render traversal and pick traversal. In render traversal, the algorithm descends the graph depth-first, accumulating transformations to position geometry nodes correctly before issuing draw calls, such as via OpenGL commands in systems like Open Inventor. This ensures coherent state management, where properties like materials propagate down the hierarchy until overridden. Pick traversal, used for object selection, employs ray casting: a ray originating from the viewer (e.g., mouse position) intersects the scene graph by testing against transformed bounding volumes during depth-first descent, returning the closest hit node for interaction. This method computes intersections for relevant subgraphs, prioritizing efficiency by early termination on opaque hits. Optimizations like integrate directly into traversal to skip off-screen subgraphs, reducing draw calls and CPU load. During depth-first traversal, each node's bounding box in local coordinates BB_{local} is transformed to world space via BB_{world} = T \times BB_{local}, where T is the accumulated , then tested against the view planes; if no , the entire subtree is . This hierarchical check propagates savings, as parent avoids child processing, and is applied in rendering actions to balance host and GPU workloads. In SGI Performer, such occurs via opDrawAction::apply() with modes like view- enabled. Traversal often employs the visitor pattern for flexible dispatch of operations like animation updates or rendering. In this design, a visitor object (e.g., an "action" in Open Inventor) traverses the graph, invoking polymorphic methods on each node type—such as updating bone matrices for skinned meshes—without altering the node classes. This separates algorithm from structure, allowing multiple visitors (e.g., one for animation, another for culling) to reuse the same traversal logic.

Applications

In Graphics Software and Games

In graphics software, scene graphs facilitate the management of complex scenes through hierarchical structures that support non-destructive editing and efficient data updates. employs a , a variant of the scene graph, to evaluate scene data on copies using techniques, allowing multiple states such as low-resolution previews and high-resolution renders without altering original data. This enables features like proxies, overrides, and animatable properties, ensuring only dependent elements are updated for optimal performance. Similarly, uses a to organize artwork, where objects are grouped into parent layers and sublayers, providing a structure akin to a 2D scene graph for independent control of visibility, editability, and selection in complex illustrations. In game engines and 3D applications, scene graphs underpin hierarchical models essential for character , level design, and real-time scene updates. Unity's GameObject functions as a scene graph, enabling parent-child relationships where child objects inherit transformations like position and rotation from parents, streamlining the organization of scenes with models, cameras, and prefabs. structures its world around a scene graph composed of Actors containing SceneComponents, with a component defining the for spatial relationships and behaviors such as movement. These hierarchies support dynamic for characters and modular level , allowing real-time modifications during or simulation. Scene graphs offer key benefits in animation and rendering optimization within these environments. Skeletal hierarchies, integrated into the scene graph, allow efficient by applying transformations to parent bones that propagate to children, reducing computational overhead for realistic movements in games and simulations. Level-of-detail (LOD) switching is facilitated by replacing nodes with simpler variants based on distance or performance needs, maintaining frame rates in large scenes without manual intervention each frame. A notable case study is the use of (OSG) in flight simulators for managing complex environments, particularly in applications. OSG's scene graph handles high-performance rendering of , , and dynamic elements in simulations, supporting visual databases for and . For instance, it has been integrated into professional flight simulators like those developed for UAV operations and , enabling scalable visualization of scenarios with features such as head-up displays and multi-axis motion.

In Computer Vision and AI

In , scene graphs serve as structured representations for scene understanding tasks, particularly in generating graphs from images or videos to capture objects and their pairwise relationships, often termed . A seminal approach, Graph R-CNN, integrates region-based with a graph convolutional network to jointly predict objects and relations, achieving improved mean recall on benchmarks by modeling relational context during inference. The Visual Genome dataset, comprising over 108,000 images annotated with dense object-relation triplets, has become the de facto standard for training and evaluating such models, enabling advancements in tasks like visual question answering and image captioning through relational reasoning. These graphs extend traditional by incorporating spatial and semantic relations, such as "person-on-chair," to provide a more holistic scene parse. In AI-driven generative tasks, neural models leverage scene graphs for scene synthesis, particularly in the with diffusion-based and language-guided methods. For instance, Pix2Grp employs vision-language models to produce open-vocabulary scene graphs from pixel inputs, demonstrating robust performance on indoor scenes by grounding entities and relations without predefined categories, as evidenced by its application in downstream tasks. Recent works from 2023 to 2025 further incorporate for controllable generation; CausalStruct uses large language models to refine scene graphs via causal intervention, enabling editable layouts from text prompts while preserving structural consistency. Scene graphs integrate into for spatial reasoning, where dynamic graphs model evolving object relations to support and ; for example, dynamic scene graph-guided chain-of-thought reasoning enhances embodied agents' understanding of spatial hierarchies in environments. models combine graphs with images for grounded generation, as in SGG-IG, which conditions diffusion models on scene graphs to produce semantically faithful images. Key challenges in these applications include for dynamic scenes, where maintaining in video-based demands efficient updates to handle occlusions and motion, often leading to computational overhead in settings. metrics emphasize relation accuracy, such as mean (R@100), which measures the proportion of ground-truth relations recovered within the top 100 predictions, alongside predicate-specific to address long-tail biases in datasets.

Bounding Volume Hierarchies

Bounding volume hierarchies (BVHs) are tree-structured spatial data structures that organize scene geometry by enclosing groups of primitives or subgraphs within s, such as axis-aligned bounding boxes (AABBs) or spheres, to facilitate efficient spatial queries. In the context of scene graphs, a BVH mirrors the of the scene, where each in the tree represents a bounding volume that tightly encapsulates the geometry of its corresponding scene subgraph, enabling rapid approximation of object extents without examining individual primitives. This structure originated from early work on automatic hierarchy generation for ray tracing, where bounding volumes were used to prune tests. Integration of BVHs with scene graphs typically involves augmenting each scene node with a that encompasses itself and its children, creating an "outside-managed" BVH that leverages the existing tree topology of the scene graph for traversal. During rendering or , this allows for hierarchical : a ray or query intersects the root first, and only intersecting child nodes are recursed into, significantly reducing computational overhead compared to flat scene representations. For instance, in ray tracing pipelines, this integration supports both rasterization and ray-based rendering by combining scene graph traversal with BVH acceleration. BVH construction can employ top-down approaches, such as recursive spatial splitting guided by heuristics like the surface area heuristic (SAH) to minimize expected traversal costs, or bottom-up methods involving agglomerative clustering of into larger volumes. In dynamic scenes, where transforms or deformations occur, BVHs are updated via refitting: child bounding volumes are recomputed bottom-up to the root, preserving the tree while adapting to changes, with lazy invalidation of degenerate nodes to exploit temporal . This process ensures efficiency in real-time applications, with refit times often under 15 ms for complex models containing hundreds of thousands of triangles. In applications, BVHs accelerate ray tracing by organizing scene subgraphs to quickly reject non-intersecting volumes, achieving up to several orders of magnitude speedup over naive methods in incoherent ray scenarios, as demonstrated in production renderers like Embree. For physics simulations in games, BVHs enable broad-phase by hierarchically pruning potential pairwise tests between dynamic objects, supporting deformable and breakable bodies with 4-13x performance gains over uniform grids in benchmarks involving thousands of interacting elements.

Spatial Partitioning Systems

Spatial partitioning systems divide the 3D space of a scene into discrete regions to accelerate queries such as collision detection and visibility culling, often integrated with scene graphs to manage complex environments efficiently. Common techniques include uniform grids, which subdivide space into equal-sized cells for simple, fast lookups in evenly distributed scenes; octrees, which recursively partition space into eight octants to handle varying densities; and k-d trees, which alternately split along coordinate axes using median planes for balanced traversal. For indoor or architectural scenes, portal culling employs cell-and-portal graphs, where visibility is restricted through connected openings (portals) between partitioned cells, reducing the need to render occluded geometry. In hybrid structures, scene graph nodes reference elements within partition cells, allowing the of objects to leverage spatial indexing for optimized operations without fully replacing the graph's . Dynamic updates are essential for moving objects, involving reinsertion into affected cells—such as rebuilding local subtrees in k-d trees or reallocating positions—while minimizing global recomputation to maintain performance in animated scenes. These integrations enable scene graphs to scale to large environments by combining logical hierarchies with physical locality. The primary benefits include accelerated ray-object intersection tests through localized searches and improved visibility determination by irrelevant partitions early in the , which is particularly valuable in open-world games where vast, explorable spaces demand efficient and handling. A notable example is the , which combined (BSP) trees for static level geometry with entity hierarchies akin to graphs, enabling fast visibility sorting and collision queries in dynamic . Such systems complement bounding volume hierarchies by providing broader spatial subdivision for initial query pruning.

Standards and Frameworks

PHIGS and Early Standards

The () was established as an in 1988 by the (ISO) under ISO 9592, providing a retained-mode () for creating, storing, and rendering and . This emphasized hierarchical through centralized stores, where elements—such as polylines, polygons, text, and markers—could be organized into reusable structures with associated attributes like transformations for positioning, , and . The design allowed applications to build complex scenes by editing and referencing these structures without immediate rendering, contrasting with immediate-mode systems that required redrawing on each change. A core aspect of was its model, which abstracted hardware variations to enable portable output across diverse devices, from plotters to raster displays. Developers could open multiple workstations, post structures for display, and control rendering via traversal algorithms that interpreted the during output. features included support for files to persist entire scenes or individual structures externally, functions to query details like element counts or attribute values within stores, and mechanisms for dynamic updates during interactive sessions. These capabilities facilitated efficient manipulation of graphical data in resource-constrained environments of the era. Despite its advancements, PHIGS had notable limitations, particularly in rendering realism; it focused primarily on wireframe and flat-shaded 2D/3D primitives without built-in support for textures, advanced models, or effects essential for photorealistic scenes. These gaps were addressed in the upward-compatible extension known as PHIGS+, standardized later as ISO 9592-4, which introduced , , curved surfaces, and other enhancements. The original PHIGS thus prioritized structural integrity and over visual sophistication. PHIGS exerted significant influence as a foundational for (CAD) systems throughout the 1980s and 1990s, enabling hierarchical modeling and interactive editing in engineering and architectural applications. Its structure store and traversal features became integral to early CAD/ software, promoting and reuse in professional workflows before the rise of more modern APIs. This legacy underscored PHIGS's role in standardizing scene graph concepts for practical graphics programming.

SGI Open Inventor

SGI's Open Inventor, originally known as IRIS Inventor, was introduced in 1991 as a C++ object-oriented 3D graphics toolkit built atop OpenGL to simplify scene graph management for developers. It provided a retained-mode API where scenes are represented as hierarchical graphs of nodes, including core classes like SoSeparator for grouping subgraphs and isolating state changes, and SoTransform for applying translations, rotations, and scales to child nodes. The toolkit also supported an ASCII file format with the .iv extension for storing and exchanging scene descriptions, enabling easy serialization of node hierarchies. Key features included dynamic behaviors through engines, which are objects that automatically compute outputs from inputs without explicit polling, facilitating animations and procedural effects, and sensors, which monitor events or data changes to trigger callbacks for interactive applications. The definitive reference, The Inventor Mentor: Programming Object-Oriented 3D Graphics with Open Inventor, Release 2, published in 1993 by , detailed these components and served as the primary guide for integrating scene graphs into custom software. Open Inventor 2.0, released in 1994, extended the toolkit with enhanced support for volume visualization nodes and advanced , allowing for more complex rendering of volumetric data and surface details in scientific and engineering contexts. By 1996, version 2.1 further improved performance and compatibility. In 2000, SGI open-sourced the codebase under the LGPL, leading to community-driven implementations such as Coin3D, a compatible C++ library focused on cross-platform rendering. Although Java3D emerged as a related Java-based scene graph inspired by Open Inventor's design, it developed independently through . The toolkit's impact extended to computer-aided design (CAD) and scientific visualization, where its scene graph structure enabled efficient handling of complex models in tools like volume renderers and data explorers. It influenced subsequent frameworks, including Qt's integration via Open Inventor bindings for GUI-embedded rendering and OpenSG, a high-performance scene graph system for large-scale visualizations. Building on earlier standards like , Open Inventor shifted focus toward practical, extensible object-oriented implementations for desktop graphics applications.

X3D and Web3D

X3D, or Extensible 3D, represents the current ISO standard for declarative scene graphs, enabling the description of 3D scenes and multimedia through a structured, extensible format that builds directly on the scene graph paradigm. It evolved from the (VRML), which was standardized in 1997 as ISO/IEC 14772-1, to address limitations in extensibility and integration with modern web technologies. The transition to began in the late under the Web3D Consortium, culminating in its ratification as ISO/IEC 19775 in 2004, with subsequent revisions including the 2023 edition that refines architecture, encodings, and components for enhanced interoperability. This evolution introduced multiple encodings—Classic (VRML-like), XML, and —to support diverse authoring and parsing needs, allowing scenes to be embedded directly in web documents or exchanged across platforms. At its core, employs a node-based scene graph where nodes encapsulate specific functionalities, such as geometry (e.g., and IndexedFaceSet nodes for defining meshes), lights (e.g., DirectionalLight and PointLight for illumination), and interpolators (e.g., PositionInterpolator for animating transformations over time). These nodes form a hierarchical structure, with fields defining properties and routes connecting events between them to drive dynamic behavior. Scripting enhances interactivity through the Script node, which integrates () to process events, modify the scene graph at runtime, and interface with external data sources, enabling complex simulations without proprietary plugins. Key features of X3D include prototypes, which allow authors to define custom nodes by encapsulating reusable scene graph subtrees with their own interfaces, promoting modularity and extension of the standard without altering core definitions. Geospatial extensions, part of the Geospatial component, support real-world coordinate systems via nodes like GeoLocation and GeoCoordinate, facilitating applications in geographic information systems by mapping , , and to the scene graph. Integration with web standards is achieved through encodings that align with and ; for instance, the X3DOM framework maps X3D elements directly into the HTML DOM, rendering them via WebGL for plugin-free browser support. As of 2025, remains actively maintained by the Web3D Consortium and is widely used in (AR) and virtual reality (VR) for its royalty-free, open nature, with tools like X3DOM enabling seamless deployment in web-based immersive experiences. Recent updates in ISO/IEC 19775-1:2023 incorporate (PBR) materials through nodes like PhysicallyBasedMaterial, improving realism in lighting and surface interactions for applications in simulation and . This positions X3D as a foundational standard for Web3D, contrasting with earlier imperative toolkits by emphasizing declarative, web-native scene graph authoring.

References

  1. [1]
    [PDF] Using graph-based data structures to organize and manage scene ...
    Apr 4, 2002 · Scene graphs are data structures used to organize and manage the contents of hierarchically oriented scene data.Missing: authoritative | Show results with:authoritative
  2. [2]
    [PDF] Scene graph - UCSD CSE
    Scene graph. Computer Graphics. CSE 167. Lecture 10. Page 2. Scene graph. • Data structure for intuitive construction of 3D scenes. • So far, our GLFW-based ...
  3. [3]
    [PDF] Hierarchical Modeling and Scene Graphs - Texas Computer Science
    Hence most scene graph APIs are built on top of. OpenGL or DirectX (for PCs) ... University of Texas at Austin CS354 - Computer Graphics Don Fussell.
  4. [4]
    Scene Graph Basics
    A scene graph is a tree of Java 3D nodes, including Group and Leaf nodes, that organizes and controls the rendering of objects.Missing: computer | Show results with:computer
  5. [5]
    What is Scene Graph - Unity
    A Scene Graph is a hierarchical data structure that organizes all objects in a 3D environment, defining spatial relationships and enabling efficient rendering ...Missing: computer authoritative
  6. [6]
    Scene Graphs in Computer Graphics - Tutorials Point
    A scene graph is a way to organize objects within a scene, often in a hierarchical structure. When working with objects in computer graphics, transformations ( ...Missing: authoritative | Show results with:authoritative
  7. [7]
    [PDF] CMSC427 Scene graphs - UMD Computer Science
    – Related via hierarchical transformations (transformations apply to ... Should we use scene graph hierarchy for culling? 58. Page 59. Bounding volume ...
  8. [8]
    [PDF] What Is a Scene Graph? Why Use NVSG? - NVIDIA
    Scene graphs can be used to display virtual scenes for a variety of purposes, including game engines, computer-aided design. (CAD), scientific and commercial.
  9. [9]
    Open Scene Graph: The Basics - StackedBoxes.org
    May 5, 2010 · Being a little more strict, a scene graph is a directed acyclic graph, so it establishes a hierarchical relationship among the nodes. Suppose ...
  10. [10]
    3.3. Types of Nodes - OpenInventor 9 Developer Zone
    Property nodes, which represent appearance and other qualitative characteristics of the scene. Group nodes, which are containers that collect nodes into graphs.
  11. [11]
    Cameras - Open Inventor
    A scene graph should contain only one active camera, and its position in space is affected by the current geometric transformation. A switch node can be used to ...
  12. [12]
    VRED 2024 Help | Different Node Types | Autodesk
    In the Scenegraph, select the Wheels group node, right mouse button-click, and select Create > Switch. Rename the node to Rim_Switch_FL . Select the Rim ...
  13. [13]
    [PDF] Computer Graphics CMU 15-462/15-662
    Scene Graph (continued). Scene graph stores relative transformations in directed graph. Each edge (+root) stores a linear transformation (e.g., a 4x4 matrix).
  14. [14]
    Reusing Scene Graphs
    An application that wishes to share a subgraph from multiple places in a scene graph must do so through the use of the Link leaf node and an associated ...Missing: DAG computer graphics
  15. [15]
    Status report of the graphic standards planning committee
    A device-independent general purpose graphic system for stand-alone and satellite graphics, Proceedings of SIGGRAPH '77, published in Computer Graphics, Volume ...
  16. [16]
    (PDF) The history of computer graphics standards development
    Aug 10, 2025 · In keeping with the retrospective theme of this issue of Computer Graphics, Standards Pipeline takes a long look back at the history of the ...Missing: origins | Show results with:origins
  17. [17]
    Introduction to Inventor - Department of Computer Science
    The original version, Iris Inventor, was built on top of Iris GL and only worked on SGI workstations. However, recently several companies, including DEC, IBM, ...
  18. [18]
    aumuell/open-inventor - GitHub
    Open Inventor is an object oriented scene graph library implemented in C++ layered on top of OpenGL. It was originally developed by SGI.
  19. [19]
    Open Inventor | Linux Journal
    Sep 1, 1998 · Open Inventor was developed by Silicon Graphics (SGI), a company that builds graphical workstations. It is the second version of Iris Inventor, ...Missing: history commercial
  20. [20]
    History - openscenegraph.github.com
    In 1999 Robert Osfield collaborating on the Don's simulator took over the reigns of the scene graph element of the simulator, and together they open sourced the ...<|control11|><|separator|>
  21. [21]
    OpenSceneGraph - high-performance open-source 3D graphics toolkit
    OpenSceneGraph is an OpenGL-based high performance 3D graphics toolkit for visual simulation, games, virtual reality, scientific visualization, and modeling.Missing: history 1999 real- time
  22. [22]
    Platform-specific rendering differences - Unity - Manual
    Jun 14, 2021 · Unity runs on various graphics library platforms: Open GL, Direct3D, Metal, and games consoles. In some cases, there are differences in how ...
  23. [23]
    Actors - Unreal Engine 5.6 Documentation - Epic Games Developers
    Actors support having a hierarchy of SceneComponents. Each Actor also has a RootComponent property that designates which Component acts as the root for the ...
  24. [24]
    Scene – three.js docs
    Scenes allow you to set up what is to be rendered and where by three.js. This is where you place 3D objects like meshes, lines or lights. Constructor. new Scene ...Missing: structure | Show results with:structure
  25. [25]
    vsg-dev/VulkanSceneGraph: Vulkan & C++17 based Scene Graph ...
    VulkanSceneGraph (VSG), is a modern, cross platform, high performance scene graph library built upon Vulkan graphics/compute API.
  26. [26]
    SceneKit | Apple Developer Documentation
    SceneKit combines a high-performance rendering engine with a descriptive API for import, manipulation, and rendering of 3D assets.SCNGeometry · Class SCNMaterial · Organizing a Scene with Nodes · SCNLight
  27. [27]
    [PDF] 5.1 Hierarchical Modeling
    • The Scene Graph. – representing scenes by directed acyclic graphs (DAG). – traversing the scene graph. Page 3. • Triangles, parametric curves and surfaces are ...<|control11|><|separator|>
  28. [28]
    [PDF] Scene Graphs - GAMMA
    • Frame transform for object is product of all matrices along path from root ... • Pass a transform down the hierarchy. – before drawing, concatenate.Missing: multiplication | Show results with:multiplication
  29. [29]
    Chapter 8. Applying Actions - Open Inventor Developer Zone
    Perform your own action by writing callback functions that can be invoked during scene graph traversal. Write callback functions that use the primitives ...
  30. [30]
    [PDF] Ray Casting - cs.Princeton
    Ray-Scene Intersection. • Intuitive method. Compute intersection for all nodes of scene graph. Return closest intersection (least t). Camera. Light.Missing: pick | Show results with:pick
  31. [31]
    [PDF] Optimized View Frustum Culling Algorithms for Bounding Boxes
    Bounding volume hierarchies are commonly used to speed up the rendering of a scene by using a view frustum culling (VFC) algorithm on the hierarchy [Clark76].
  32. [32]
    Chapter 5. Culling Unneeded Objects From the Scene Graph
    Culling reduces objects sent to OpenGL by removing unnecessary objects. View-frustum culling removes objects outside the view, and occlusion culling removes ...
  33. [33]
    [1808.00191] Graph R-CNN for Scene Graph Generation - arXiv
    Aug 1, 2018 · We propose a novel scene graph generation model called Graph R-CNN, that is both effective and efficient at detecting objects and their relations in images.
  34. [34]
    [PDF] Visual Genome - Stanford Computer Vision Lab
    The scene graph representation has been shown to improve semantic image retrieval (Johnson et al., 2015; Schuster et al., 2015) and image captioning (Farhadi et ...
  35. [35]
    Scene Graph Generation by Iterative Message Passing
    In this work, we explicitly model the objects and their relationships using scene graphs, a visually-grounded graphical structure of an image.<|separator|>
  36. [36]
    Open-Vocabulary Scene Graph Generation with Vision ... - arXiv
    Apr 1, 2024 · Abstract:Scene graph generation (SGG) aims to parse a visual scene into an intermediate graph representation for downstream reasoning tasks.Missing: Pix2Grp indoor scenes 2023
  37. [37]
    Causal Reasoning Elicits Controllable 3D Scene Generation - arXiv
    Sep 18, 2025 · We propose CausalStruct, a novel framework that embeds causal reasoning into 3D scene generation. Utilizing large language models (LLMs), We ...Missing: 2023-2025 | Show results with:2023-2025
  38. [38]
    Dynamic Scene Graph-Guided Chain-of-Thought Reasoning ... - arXiv
    Mar 14, 2025 · A novel framework that integrates dynamic scene graph-guided Chain-of-Thought (CoT) reasoning to enhance spatial understanding for embodied agents.
  39. [39]
    Scene Graph-Grounded Image Generation
    Apr 11, 2025 · In this paper, we propose a Scene Graph-Grounded Image Generation (SGG-IG) method to mitigate the above issues.
  40. [40]
    Temporally Consistent Dynamic Scene Graphs: An End-to ... - arXiv
    Dec 3, 2024 · Scene graph generation (SGG) involves creating a graph-like structure where nodes represent objects in a scene and edges represent ...
  41. [41]
    Scene Graph Generation: A comprehensive survey - ScienceDirect
    Jan 21, 2024 · A comprehensive review of 138 papers on scene graph generation is presented. We analyze 2D scene graph generation, focusing on feature representation.Missing: DAG graphics
  42. [42]
    [PDF] Bounding Volume Hierarchy Analysis (Case Study) - FI MUNI
    The second view to bounding volume hierarchy definition is based on the fact that both the scene graph and the BVH are trees. The basic idea is to use structure ...
  43. [43]
    [PDF] A Survey on Bounding Volume Hierarchies for Ray Tracing
    In the last two decades, the bounding volume hierarchy (BVH) has become the de facto standard acceleration data structure for ray tracing-based rendering ...
  44. [44]
    [PDF] Ray Tracing Deformable Scenes using Dynamic Bounding Volume ...
    model's intrinsic hierarchy would be accessible through that scene graph ... A dynamic bounding volume hierarchy for generalized colli- sion detection.
  45. [45]
    A dynamic bounding volume hierarchy for generalized collision ...
    A dynamic bounding volume hierarchy for generalized collision detection☆ ... Larsson T, Akenine-Möller T. Collision detection for continuously deforming ...Missing: Larsson | Show results with:Larsson
  46. [46]
    [PDF] A dynamic bounding volume hierarchy for generalized collision ...
    In this paper, we propose a new dynamic and efficient bounding volume hierarchy for breakable objects undergoing structured and/or unstructured motion.<|control11|><|separator|>
  47. [47]
    [PDF] CS 378: Computer Game Technology - Texas Computer Science
    Spatial Partitioning, Visibility and Culling. Spring 2012. Page 2. Spatial Data Structures ! Spatial data structures store data indexed in some way by their ...
  48. [48]
    [PDF] Spatial Data Structures - CSE 168: Rendering Algorithms
    Ray Traversal for Planar Partitions. • K-D trees and BSP trees are spatial partition data structures that use a single plane at each node to split the parent ...
  49. [49]
    [PDF] Breaking the Walls: Scene Partitioning and Portal Creation - TAU
    In this paper we revisit the cells-and-portals visibility methods, originally developed for the special case of archi- tectural interiors.
  50. [50]
    Distributed scene graph to enable thousands of interacting users in ...
    Unlike traditional spatial partitioning, the scene regions in the DSG architecture would be split according to the number of messages that the region must ...
  51. [51]
    [PDF] A Comparative Analysis of Spatial Partitioning Methods for Large ...
    In a highly dynamic scene, the k-d tree will need to be updated almost every frame. By choosing splitting planes properly using median points we can always ...
  52. [52]
    (PDF) The Quake III Arena Bot - ResearchGate
    Binary Space Partitioning is used to create these convex hulls or areas of AAS. H. Fuchs, Z. Kedem, and B. Naylor introduced Binary Space Partitioning (BSP) ...
  53. [53]
    [PDF] PHIGS validation tests (Version 1.0)
    1988, by the International Organization for Standards (ISO) as ISO 9592:1988, and by the Federal. Government as Federal Information Processing Standard (FIPS) ...
  54. [54]
    PHIGS - Programmer's Hierarchical Interactive Graphics System
    PHIGS provides a set of familiar graphics objects called primitives, each with attributes that control its location, orientation, color, and appearance. All the ...
  55. [55]
    [PDF] programmer's hierarchial interactive graphics sytem (PHIGS) - GovInfo
    Jan 27, 1995 · FIPS 153-1 adopts the American National Standard Programmer's Hierarchical Interactive Graphics. System, ANSI/ISO 9592.1-3:1989, and 9592.1 a,2a ...<|separator|>
  56. [56]
  57. [57]
    Evaluating PHIGS for CAD and general graphics applications
    Abstract. The Programmer's Hierarchial Interactive Graphics System (PHIGS) is an International Standard for computer graphics and application modelling.
  58. [58]
    [PDF] Development of a Distributed Scene Toolkit Based on Open Inventor ...
    The first version of Open Inventor was released by SGI in 1991 and after that it has been devel- oped for another seven years. Because of its well designed ...
  59. [59]
    Class SoTransform - Open Inventor
    This node defines a geometric 3D transformation consisting of (in order) a (possibly) non-uniform scale about an arbitrary point, a rotation about an arbitrary ...Missing: .iv
  60. [60]
    Open Inventor Reference: SoSeparator Class Reference
    The SoSeparator node provides caching of state during rendering and bounding box computation. This feature can be enabled by setting the renderCaching and ...Missing: .iv<|separator|>
  61. [61]
    3. Open Inventor File Format - MIT
    The usual convention for Open Inventor filenames is that they all end with the extension .iv. For example, a file containing a scene description of a boat ...
  62. [62]
    Introduction to Engines - Open Inventor
    In some cases, you could use either a sensor or an engine to create a certain effect. Comparison of Sensors and Engines compares sensors and engines to help you ...
  63. [63]
    Sensors - Open Inventor
    A sensor is an Inventor object that watches for various types of events and invokes a user-supplied callback function when these events occur.
  64. [64]
    The Inventor Mentor: Programming Object-Oriented 3d Graphics ...
    The Inventor Mentor: Programming Object-Oriented 3d Graphics with Open Inventor, Release 2November 1993 ... Publisher: Addison-Wesley Longman Publishing Co., Inc.
  65. [65]
    Open Inventor Availability and Licensing
    Silicon Graphics Release History · Open Inventor 2.0. This is the Open Inventor release. It runs on IRIX 5.2. · IRIS Inventor 1.1.2. This release is an updated ...
  66. [66]
    SGI inventor Frequently Asked Questions (FAQ) - faqs.org
    Oct 6, 1999 · Date: 30 Apr 1994 15:45:00 CDT IRIS Inventor was the first release of Inventor; it is also known as Inventor 1.0 (Open Inventor is Inventor 2.0) ...
  67. [67]
    Coin3D
    Coin is an OpenGL-based, 3D graphics library that has its roots in the Open Inventor 2.1 API, which Coin still is compatible with.Missing: Java3D | Show results with:Java3D
  68. [68]
    Open Inventor - OpenGL - Khronos Forums
    May 13, 2005 · I found the obvious choices: Hoops3D (too expensive), TGS (Open Inventor), Coin3D (Open Inventor) and OpenCascade. I settled on Coin3D.Missing: Java3D | Show results with:Java3D<|separator|>
  69. [69]
    Design and Implementation of a Three-Dimensional CAD Graphics ...
    Aug 2, 2023 · The visualization components of Open CASCADE are developed based on OpenGL. Compared to other 3D rendering engine platforms such as OpenInventor ...
  70. [70]
    Qt - Open Inventor
    Open Inventor for Qt has been adapted to the Qt user interface guidelines, but at the same time preserves the system-independent “look and feel” of the viewer ...Architecture · Introduction · How To Use Soqt In Your Qt...Missing: Impact CAD
  71. [71]
    Using 3D engines with Qt - Qt Wiki
    Dec 24, 2020 · Using 3D engines with Qt · 1 Ogre · 2 Irrlicht · 3 OpenSceneGraph · 4 Open Inventor · 5 Panda3D · 6 Visualization Library · 7 VTK (The Visualization ...
  72. [72]
    What is X3D? - Web3D Consortium
    X3D has evolved from the original Virtual Reality Modeling Language (VRML), still viable since 1997, into the considerably more mature and refined ISO X3D ...
  73. [73]
    ISO/IEC 19775-1:2023 - Extensible 3D (X3D)
    2–5 day deliveryISO/IEC 19775 Extensible 3D (X3D) defines a software system that integrates network-enabled 3D graphics and multimedia.
  74. [74]
    Extensible 3D (X3D), ISO/IEC 19775-1:2023, 29 Scripting component
    EXAMPLE The following Script node has one field named start and three different URL values specified in the url field: Java, ECMAScript, and inline ECMAScript:
  75. [75]
    Extensible 3D (X3D), ISO/IEC 19775-1:2023, 25 Geospatial ...
    In order to be useful to the geospatial community, X3D provides support for a number of nodes that can use spatial reference frames for modeling purposes.Missing: extensions | Show results with:extensions<|separator|>
  76. [76]
    - x3dom.org
    X3DOM tries to support the ongoing discussion in the Web3D and W3C communities how an integration of HTML5 and declarative 3D content could look like, and it ...Get it · Examples · Documentation · Tutorials
  77. [77]
    Recommended Standards - Web3D Consortium
    Extensible 3D (X3D) Graphics and Humanoid Animation (H-Anim) Standards provide a coordinated set of steadily evolving ISO standards which are Royalty Free (RF)