Using Graph-Based Data Structures to Organize and Manage Scene

Total Page:16

File Type:pdf, Size:1020Kb

Using Graph-Based Data Structures to Organize and Manage Scene d07wals.x.g2db Page 1 of 7 Thursday, April 4, 2002 8:47:50 AM HEAD: Understanding Scene Graphs DEK Using graph-based Bio data structures to Aaron is chairman of Mantis Development, and teaches computer graphics and In- organize and manage ternet/Web application development at Boston College. He can be contacted at scene contents [email protected]. Byline NOTE TO AUTHORS: PLEASE CHECK ALL URLs AND SPELLINGS OF NAMES CAREFULLY. Aaron E. Walsh THANK YOU. Pullquotes Before scene-graph programming Scene-graph models, we usually nodes represent represented scene objects in a scene data and behavior procedurally d07wals.x.g2db Page 2 of 7 Thursday, April 4, 2002 8:47:50 AM 2.1 cene graphs are data structures used 2.68 At the scene level, you concern your- – to organize and manage the contents – self with what’s in the scene and any as- – of hierarchically oriented scene data. – sociated behavior or interaction among – Traditionally considered a high-level – objects therein. Underlying implementa- 2.5 S – data management facility for 3D content, tion and rendering details are abstracted – scene graphs are becoming popular as – out of the scene-graph programming mod- – general-purpose mechanisms for manag- – el. In this case, you can assume that your – ing a variety of media types. MPEG-4, for 2.75 VRML browser plug-in handles low-level – instance, uses the Virtual Reality Model- – concerns. 2.10 ing Language (VRML) scene-graph pro- – – gramming model for multimedia scene – Nodes and Arcs – composition, regardless of whether 3D – As Figure 2 depicts, scene graphs consist – data is part of such content. In this arti- 2.80 of nodes (that represent objects in a scene) – cle, I’ll examine what scene graphs are, – connected by arcs (edges that define re- 2.15 what problems they address, and scene- – lationships between nodes). Together, – graph programming models supported by – nodes and arcs produce a graph structure – VRML, Extensible 3D (X3D), MPEG-4, and – that organizes a collection of objects hi- – Java 3D. 2.85 erarchically, according to their spatial po- – – sition in a scene. 2.20 Scene Composition and Management – With the exception of the topmost root – Scene graphs address problems that gen- – node (which defines the entry point into – erally arise in scene composition and – the scene graph), every node in a scene – management. Popularized by SGI Open 2.90 has a parent. Nodes containing other – Inventor (the basis for VRML), scene- – nodes are parent nodes, while the nodes 2.25 graph programming shields you from the – they contain are the child nodes (children) – gory details of rendering, letting you fo- – of their parent. Nodes that can contain – cus on what to render rather than how to – children are grouping nodes; those that – render it. 2.95 cannot are leaf nodes. Subgraph structures – As Figure 1 illustrates, scene graphs of- – in Figure 2 let a specific grouping of nodes 2.30 fer a high-level alternative to low-level – exist as a discrete and independently ad- – graphics rendering APIs such as OpenGL – dressed unit of data within the main scene- – and Direct3D. In turn, they provide an ab- – graph structure. Operations on the scene – straction layer to graphics subsystems re- 2.100 can be performed on all nodes in the – sponsible for processing, eventually pre- – graph, or they may be restricted to a par- 2.35 senting scene data to users via monitors, – ticular subgraph (scenes can therefore be – stereoscopic goggles/glasses, projectors, – composed of individual nodes as well as – and the like. – entire subgraphs that may be attached or – Before scene-graph programming mod- 2.105 detached as needed). – els, we usually represented scene data and – Scene graphs in Figure 2 resemble tree 2.40 behavior procedurally. Consequently, code – data structures when depicted visually. – that defined the scene was often inter- – Not surprisingly, trees are often used for – spersed with code that defined the pro- – scene-graph programming. The directed – cedures that operated on it. The result was 2.110 acyclic graph (DAG) data structure (also – complex and inflexible code that was dif- – known as an “oriented acyclic graph”) is 2.45 ficult to create, modify, and maintain — – commonly used because it supports node – problems that scene graphs help resolve. – sharing at a high level in the graph (nodes – By separating the scene from the op- – in a DAG can have more than one par- – erations performed on it, the scene-graph 2.115 ent) although typically at the expense of – programming model establishes a clean – additional code complexity and memory 2.50 boundary between scene representation – consumption. In a DAG, all nodes in the – and rendering. Thus, scenes can be com- – graph have a directed parent-child rela- – posed and maintained independent of rou- – tionship in which no cycles are allowed — – tines that operate on them. In addition to 2.120 nodes cannot be their own parent. – making things easier, this lets you create – 2.55 sophisticated content using visual author- – Graph Traversal – ing tools without regard for how work is – Scene-graph nodes represent objects in a – processed. – scene. Scene graphs used for 3D content, – Listing One is VRML code for a scene 2.125 for instance, usually support nodes that – consisting of a sphere that, when touched, – represent 3D geometric primitives (prede- 2.60 appears yellow. As you can see, the ob- – fined boxes, cones, spheres, and so forth), – jects and their behavior are represented – arbitrarily complex polygonal shapes, lights, – at a high level. You don’t know (or care) – materials, audio, and more. On the other – how the sphere is rendered — just that it 2.130 hand, scene-graph programming models – is. Nor do you know or care about how – for other forms of media might support – the input device is handled by the un- – nodes for audio/video content, timing and – derlying run-time system to support the – synchronization, layers, media control, spe- 2.67 “touch” behavior. Ditto for the light. 2.134 cial effects, and other functionality for com- d07wals.x.g2db Page 3 of 7 Thursday, April 4, 2002 8:47:50 AM 3.1 posing multimedia. 3.68 because only one of each type can be – Scene-graph programming models sup- – bound, or affect the user’s experience, – port a variety of operations through tra- – at any instant in time. – versals of the graph data structure that typ- – 3.5 ically begin with the root node (root nodes – Every VRML node has an associated – are usually the entry point for scene ren- – type name that defines the formal name – dering traversals). Graph traversals are re- – for the node —Box, Fog, Shape, and so – quired for a number of operations, in- 3.75 forth. Each node may contain zero or – cluding rendering activities related to – more fields that define how nodes differ 3.10 transformations, clipping and culling (pre- – from other nodes of the same type (field – venting objects that fall outside of the – values are stored in the VRML file along – user’s view from being rendered), light- – with the nodes and encode the state of – ing, and interaction operations such as 3.80 the virtual world) in addition to a set of – collision detection and picking. – events, if any, that the node can send or 3.15 Nodes affected by a given operation are – receive. When a node receives an event, – visited during a corresponding traversal. – it reacts accordingly by changing its state, – Upon visitation, a node’s internal state – which might trigger additional events. – may be set or altered (if supported) so 3.85 Nodes can change the state of objects in – that it reflects the state of the operation – the scene by sending events. A node’s im- 3.20 at that point in time. Rendering traversals – plementation defines how it reacts to – occur almost constantly with interactive – events, when it may generate and send – and animated graphics because the state – events, and any visual or auditory ap- – of affairs change as often as the user’s 3.90 pearance it might have in the scene. – viewpoint, necessitating continual scene- – VRML supports a Script node that fa- 3.25 graph queries and updates in response to – cilitates dynamic behaviors written in pro- – an ever-changing perspective. To increase – gramming languages such as ECMAScript, – performance, effect caching can be used – JavaScript, and Java. Script nodes are typ- – so that commonly applied operations use 3.95 ically used to signify a change in the scene – cached results when possible. – or some form of user action, receive events 3.30 – from other nodes, encapsulate program – Virtual Reality – modules that perform computations, or – Modeling Language (VRML) – effect change elsewhere in the scene by – VRML is an international Standard for 3D 3.100 sending events. External programmatic – computer graphics developed by the – control over the VRML scene graph is pos- 3.35 Web3D Consortium (formerly the VRML – sible via the External Authoring Interface – Consortium) and standardized by ISO/IEC. – (EAI). Currently awaiting final ISO stan- – The complete specification for ISO/IEC – dardization as Part 2 of the VRML97 Stan- – 14772–1:1997 (VRML97) is available at 3.105 dard, EAI is a model and binding for the – http://web3d.org/. – interface between VRML worlds and ex- 3.40 An Internet and web-enabled outgrowth – ternal environments. – of Open Inventor technology developed – All in all, the VRML Standard defines – by SGI (http://www.sgi.com/), VRML stan- – semantics for 54 built-in nodes that im- – dardizes a DAG-based scene-graph pro- 3.110 plementers, such as VRML browser plug- – gramming model for describing interactive – ins, are obligated to provide.
Recommended publications
  • What Is X3D? Whose Product Is X3D? Why Is X3D
    X3D: THE REAL-TIME 3D SOLUTION FOR THE WORLD-WIDE WEB What is X3D? X3D (Extensible 3D) is a royalty-free and openly published standard file format specification and run-time architecture to represent and communicate 3D objects, events, behaviors and environments. The X3D suite of International Standards Organization (ISO) ratified standards provide a robust abstraction for the storage, retrieval and playback of real time 4D graphics content across diverse platforms. The extensible scene graph model of X3D can be equivalently encoded in a number of valid, secure and efficient encodings and be accessed and manipulated through a number of languages Why is X3D important? using a common API. Development has evolved from its beginnings as the Virtual Reality Modeling Language (VRML) It allows applications to communicate over the Web using ISO standard to the considerably more advanced and an ISO-certified scene graph model, encoded in multiple expressive X3D. formats (XML, Binary, VRML-Classic) and bind-able to multiple languages (e.g. ECMA, Java) Whose product is X3D? It is modular and extensible, saving development time and money and providing value to vendor and consumer Extensible 3D (X3D) It is free for use – not relying on propriety formats and (www.web3d.org/x3d) is a royalty- upgrades for a lifetime 4D content lifecycle free open ISO standard managed It provides multiple generation and authoring pathways by the Web3D Consortium. The It enables content developers and tool makers to build on X3D specifications are driven by each other and a common fabric for cyberspace members and available to the It is a vision designed and developed through community public.
    [Show full text]
  • N Polys Advanced X3D [Autosaved]
    Web3D 2011 Tutorial: Advanced X3D Nicholas Polys: Virginia Tech Yvonne Jung: Fraunhofer IGD Jeff Weekly, Don Brutzman: Naval Postgraduate School Tutorial Outline Recent work in the Web3D Consortium Heading to ISO this month! • X3D : Advanced Features • X3D Basics • Advanced rendering (Yvonne Jung) • Volumes • Geospatial • CAD • Units (Jeff Weekly) • Authoring 2 Open Standards www.web3d.org • Portability • Durability • IP-independence • International recognition and support : the Standard Scenegraph Scene graph for real-time interactive delivery of virtual environments over the web: • Meshes, lights, materials, textures, shaders • Integrated video, audio Event ROUTE • Animation • Interaction • Scripts & Behaviors Sensor • Multiple encodings (ISO = XML, VRML-Classic, Binary) • Multiple Application Programming Interfaces (ISO = ECMA, Java) • X3D 3.3 includes examples for Volume rendering, CAD and Geospatial support! Web3D Collaboration & Convergence W3C ISO OGC - XML - Web3DS - HTML 5 -CityGML - SVG - KML Interoperability Web3D Consortium IETF & Access - Mime types Across Verticals - Extensible 3D (X3D) - Humanoid Animation (H-Anim) - VRML DICOM - N-D Presentation State - DIS - Volume data Khronos - OpenGL, WebGL - COLLADA Adoption Immersive X3D • Virginia Tech Visionarium: VisCube • Multi-screen, clustered stereo rendering • 1920x1920 pixels per wall (x 4) • Infitech Stereo • Wireless Intersense head & wand • Instant Reality 7 VT Visionarium • Output from VMD • Jory Z. Ruscio, Deept Kumar, Maulik Shukla, Michael G. Prisant, T. M. Murali,
    [Show full text]
  • Opengl Shaders and Programming Models That Provide Object Persistence
    OpenGL shaders and programming models that provide object persistence COSC342 Lecture 22 19 May 2016 OpenGL shaders É We discussed forms of local illumination in the ray tracing lectures. É We also saw that there were reasons you might want to modify these: e.g. procedural textures for bump maps. É Ideally the illumination calculations would be entirely programmable. É OpenGL shaders facilitate high performance programmability. É They have been available as extensions since OpenGL 1.5 (2003), but core within OpenGL 2.0 (2004). É We will focus on vertex and fragment shaders, but there are other types: e.g. geometry shaders, and more recent shaders for tessellation and general computing. COSC342 OpenGL shaders and programming models that provide object persistence 2 GL Shading Language|GLSL É C-like syntax. (No surprises given the OpenGL lineage . ) É However, compared to `real' use of C, GLSL programmers are further away from the actual hardware. É Usually the GLSL code will be passed as a string into the OpenGL library you are using. É Only supports limited number of data types: e.g. float, double,... É Adds some special types of its own: e.g. vector types vec2, vec4. É Unlike most software, GLSL is typically compiled every time you load your functions|there isn't (yet...) a standardised GL machine code. COSC342 OpenGL shaders and programming models that provide object persistence 3 GLSL on the hardware É The GLSL syntax just provides a standard way to specify functions. É Different vendors may use vastly different hardware implementations. É (Or indeed the CPU may be doing the GLSL work, e.g.
    [Show full text]
  • BIM & IFC-To-X3D
    BIM & IFC-to-X3D Hyokwang Lee PartDB Co., Ltd. and Web3D Korea Chapter [email protected] Engineering IT & VR solutions based on International Standards BIM . BIM (Building Information Modeling) . A digital representation of physical and functional characteristics of a facility. A shared knowledge resource for information about a facility forming a reliable basis for decisions during its life-cycle; defined as existing from earliest conception to demolition. http://www.directindustry.com/ http://www.aecbytes.com/buildingthefuture/2007/BIM_Awards_Part1.html Coordination between the different disciplinary models. (© M.A. Mortenson Company) 4D scheduling using the BIM model (top image) and the details of site utilization and civil work (lower image) used for coordination and communication with local review agencies and utility companies. (© M.A. Mortenson Company) http://www.quartzsys.com/ Design http://www.quartzsys.com/?c=1/6/27 OpenBIM . A universal approach to the collaborative design, realization and operation of buildings based on open standards and workflows. An initiative of buildingSMART and several leading software vendors using the open buildingSMART Data Model. http://buildingsmart.com/openbim OpenBIM & IFC . IFC (ISO/PAS 16739) . The Industry Foundation Classes (IFC) : an open, neutral and standard ized specification for Building Information Models, BIM. The main buildingSMART data model standard buildingSMART Web3D Consortium International IFC Web3D (ISO/PAS 16739) Web3D Korea Chapter buildingSMART KOREA - Inhan Kim, What is BIM?, Aug. 2008, http://www.cadgraphics.co.kr/cngtv/data/20080813_1.pdf BIM CAD Systems . Autodesk Revit Architecture . Bently Achitecture . Nemetschek Allplan . GRAPHISOFT ArchiCad . Gehry Technologies (GT) Digital Project . CATIA V5 as a core modeling engine . Vectorworks Architect Simple IFC-to-X3D Conversion .
    [Show full text]
  • Emerging Web3d Web Standards and Technologies Aaron E
    Emerging Web3D Web Standards and Technologies Aaron E. Walsh Mantis Development Corps | Boston College Boston, MA USA 02115 | Chestnut Hill, MA 02467 voice: +1-617-536-3279 | +1-617-552-3900 e-mail: [email protected] | [email protected] World Wide Web: http://mantiscorp.com/people/aew Web3D Web: urn:web3Dweb:people:walsh:aaron:e JPEG, and PNG) and even vector graphics (e.g., Abstract SVG and VML). More sophisticated data formats and The Web3D Web is an emerging distributed digital proprietary media types are rarely supported media platform designed specifically for three- directly by the browser, however, and typically dimensional (3D) content and other forms of rich, require a corresponding “player” that comes in the interactive media. Built using traditional Internet form of a plug-in, Active X control, applet, or and World Wide Web technologies, the Web3D helper application that can decode such content and Web enables innovative 3D applications such as allow the end user to interact with it directly within interactive movies; stereoscopic cinema; immersive the Web browser window. Because Web browsers multiplayer games; distributed virtual reality; can be easily extended in this way an astonishing synthetic environments; three-dimensional multi- array of new digital media types have been user chat; telepresence and telesurgery; simulators; introduced over the years that would not be viable if immersive distance learning; and other forms of browser vendors were required to support such high-impact content. The Web3D Web supports content natively. proprietary and open digital media data types and Although the vast majority of visual media formats to allow rich media applications to be available today on the traditional Web is two- constructed from a wide range of technologies, dimensional, having only the dimensions of height including Flash, Shockwave, Virtual Reality and width, 3D content that has the added dimension Modeling Language (VRML), Extensible 3D of depth is becoming increasingly popular.
    [Show full text]
  • Lecture 08: Hierarchical Modeling with Scene Graphs
    Lecture 08: Hierarchical Modeling with Scene Graphs CSE 40166 Computer Graphics Peter Bui University of Notre Dame, IN, USA November 2, 2010 Symbols and Instances Objects as Symbols Model world as a collection of object symbols. Instance Transformation Place instances of each symbol in model using M = TRS. 1 glTranslatef (dx, dy, dz); 2 g l R o t a t e f (angle, rx, ry, rz); 3 g l S c a l e f (sx, sy, sz); 4 gluCylinder (quadric, base, top, height, slices, stacks); Problem: No Relationship Among Objects Symbols and instances modeling technique contains no information about relationships among objects. I Cannot separate movement of Wall-E from individual parts. I Hard to take advantage of the re-usable objects. Solution: Use Graph to Model Objects Represent the visual and abstract relationships among the parts of the models with a graph. I Graph consists of a set of nodes and a set of edges. I In directed graph, edges have a particular direction. Example: Robot Arm 1 display () 2 { 3 g l R o t a t e f (theta, 0.0, 1.0, 0.0); 4 base (); 5 glTranslatef (0.0, h1, 0.0); 6 g l R o t a t e f (phi, 0.0, 0.0, 1.0); 7 lower_arm(); 8 glTranslatef (0.0, h2, 0.0); 9 g l R o t a t e f (psi, 0.0, 0.0, 1.0); 10 upper_arm(); 11 } Example: Robot Arm (Graph) 1 ConstructRobotArm(Root) 2 { 3 Create Base; 4 Create LowerArm; 5 Create UpperArm; 6 7 Connect Base to Root; 8 Connect LowerArm to Base; 9 Connect UpperArm to LowerArm; 10 } 11 12 RenderNode(Node) 13 { 14 Store Environment; 15 16 Node.Render(); 17 18 For Each child in Node.children: 19 RenderNode(child); 20 21 Restore Environment; 22 } Scene Graph: Node Node in a scene graph requires the following components: I Render: A pointer to a function that draws the object represented by the node.
    [Show full text]
  • ISO/IEC JTC 1 N13604 ISO/IEC JTC 1 Information Technology
    ISO/IEC JTC 1 N13604 2017-09-17 Replaces: ISO/IEC JTC 1 Information Technology Document Type: other (defined) Document Title: Study Group Report on 3D Printing and Scanning Document Source: SG Convenor Project Number: Document Status: This document is circulated for review and consideration at the October 2017 JTC 1 meeting in Russia. Action ID: ACT Due Date: 2017-10-02 Pages: Secretariat, ISO/IEC JTC 1, American National Standards Institute, 25 West 43rd Street, New York, NY 10036; Telephone: 1 212 642 4932; Facsimile: 1 212 840 2298; Email: [email protected] Study Group Report on 3D Printing and Scanning September 11, 2017 ISO/IEC JTC 1 Plenary (October 2017, Vladivostok, Russia) Prepared by the ISO/IEC JTC 1 Study Group on 3D Printing and Scanning Executive Summary The purpose of this report is to assess the possible contributions of JTC 1 to the global market enabled by 3D Printing and Scanning. 3D printing, also known as additive manufacturing, is considered by many sources as a truly disruptive technology. 3D printers range presently from small table units to room size and can handle simple plastics, metals, biomaterials, concrete or a mix of materials. They can be used in making simple toys, airplane engine components, custom pills, large buildings components or human organs. Depending on process, materials and precision, 3D printer costs range from hundreds to millions of dollars. 3D printing makes possible the manufacturing of devices and components that cannot be constructed cost-effectively with other manufacturing techniques (injection molding, computerized milling, etc.). It also makes possible the fabrications of customized devices, or individual (instead of identical mass-manufactured) units.
    [Show full text]
  • Moving Web 3D Content Into Gearvr
    Moving Web 3d Content into GearVR Mitch Williams Samsung / 3d-online GearVR Software Engineer August 1, 2017, Web 3D BOF SIGGRAPH 2017, Los Angeles Samsung GearVR s/w development goals • Build GearVRf (framework) • GearVR Java API to build apps (also works with JavaScript) • Play nice with other devices • Wands, Controllers, I/O devices • GearVR apps run on Google Daydream ! • Performance, New Features • Fight for every Millisecond: • Android OS, Oculus, GPU, CPU, Vulkun • Unity, Unreal, GearVRf (framework) • Enable content creation • Game developers, 3D artists, UI/UX people, Web designers Content Creation for GearVR • 360 movies • Game Editors: Unity, Unreal • GearVRf (framework) • Open source Java api, JavaScript bindings • WebVR • WebGL; frameworks: A-frame, Three.js, React, X3Dom • 3d file formats • Collada, .FBX, gltf, .OBJ &.mtl, etc. using Jassimp • Java binding for Assimp (Asset Import Library) • X3D Why implement X3D in GearVR • Samsung began this effort February, 2016 • X3D is a widely supported file format • Exported by 3DS Max, Blender, Maya, Moto • Or exports VRML and converts to X3D • No other file format had similar capabilities. • Interactivity via JavaScript • Declarative format easy to edit / visualize the scene. • GearVR is not just a VR game console like Sony PSVR • We are a phone, web access device, camera, apps platform • X3D enables web applications: • Compliments the game influence in GearVR from Unity, Unreal. • Enables new VR web apps including: Google Maps, Facebook, Yelp JavaScript API’s. GearVR app Build Runtime Live Demo Very daring for the presenter who possesses no art skills. • 3ds Max 1. Animated textured objects 2. Export VRML97, Convert with “Instant Reality” to X3D • Android Studio 1.
    [Show full text]
  • Transformations Rotation and Scaling
    Fall 2015 Transformations In OpenGL, transformation are performed in the opposite order they are called 4 translate(1.0, 1.0, 0.0); 3 rotateZ(45.0); 2 scale(2.0, 2.0, 0.0); 1 DrawSquare(0.0, 0.0, 1.0); 4 scale(2.0, 2.0, 0.0); 3 rotateZ(45.0); translate(1.0, 1.0, 0.0); 2 1 DrawSquare(0.0, 0.0, 1.0); Rotation and Scaling Rotation and Scaling is done about origin You always get what you expect Correct on all parts of model 4 rotateZ(45.0); 3 scale(2.0, 2.0, 0.0); 2 translate(-0.5, -0.5, 0.0); 1 DrawSquare(0.0, 0.0, 1.0); CS 4600 1 Fall 2015 Load and Mult Matrices in MV.js Mat4(m) Mat4(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16) Sets the sixteen values of the current matrix to those specified by m. CTM = mult(CTM, xformMatrix); Multiplies the matrix,CTM, by xformMatrix and stores the result as the current matrix, CTM. OpenGL uses column instead of row vectors However, MV.js treats things in row-major order Flatten does the transpose Matrices are defined like this (use float m[16]); CS 4600 2 Fall 2015 Object Coordinate System Used to place objects in scene Draw at origin of WCS Scale and Rotate Translate to final position Use the MODELVIEW matrix as the CTM scale(x, y, z) rotate[XYZ](angle) translate(x, y, z) lookAt(eyeX, eyeY, eyeZ, atX, atY, atZ, upX, upY, upZ) lookAt LookAt(eye, at, up) Angel and Shreiner: Interactive Computer Graphics 7E © Addison-Wesley 2015 CS 4600 3 Fall 2015 The lookAt Function The GLU library contained the function gluLookAt to form the required modelview matrix through a simple interface Note
    [Show full text]
  • Computation of Potentially Visible Set for Occluded Three-Dimensional Environments
    Computation of Potentially Visible Set for Occluded Three-Dimensional Environments Derek Carr Advisor: Prof. William Ames Boston College Computer Science Department May 2004 Page 1 Abstract This thesis deals with the problem of visibility culling in interactive three- dimensional environments. Included in this thesis is a discussion surrounding the issues involved in both constructing and rendering three-dimensional environments. A renderer must sort the objects in a three-dimensional scene in order to draw the scene correctly. The Binary Space Partitioning (BSP) algorithm can sort objects in three- dimensional space using a tree based data structure. This thesis introduces the BSP algorithm in its original context before discussing its other uses in three-dimensional rendering algorithms. Constructive Solid Geometry (CSG) is an efficient interactive modeling technique that enables an artist to create complex three-dimensional environments by performing Boolean set operations on convex volumes. After providing a general overview of CSG, this thesis describes an efficient algorithm for computing CSG exp ression trees via the use of a BSP tree. When rendering a three-dimensional environment, only a subset of objects in the environment is visible to the user. We refer to this subset of objects as the Potentially Visible Set (PVS). This thesis presents an algorithm that divides an environment into a network of convex cellular volumes connected by invisible portal regions. A renderer can then utilize this network of cells and portals to compute a PVS via a depth first traversal of the scene graph in real-time. Finally, this thesis discusses how a simulation engine might exploit this data structure to provide dynamic collision detection against the scene graph.
    [Show full text]
  • Open Scene Graph ODE - Open Dynamics Engine
    Universidade do Vale do Rio dos Sinos Virtual Reality Tools OSG - Open Scene Graph ODE - Open Dynamics Engine M.Sc . Milton Roberto Heinen - Unisinos / UFRGS E-mail: [email protected] Dr. Fernando S. Osório - Unisinos E-mail: [email protected] Artificial Intelligence Group - GIA Virtual Reality Tools OSG (Open Scene Graph) + ODE (Open Dynamics Engine) Open Scene Graph Programa de Pós-Graduação em Computação Aplicada PIPCA Grupo de Inteligência Artificial - GIA 1 Virtual Reality Tools OSG (Open Scene Graph) + ODE (Open Dynamics Engine) Open Scene Graph - OSG http://www.openscenegraph.org/ • OSG: Open and Free Software Object Oriented (C++) Software Library (API) • The OSG Library is an abstraction layer over the OpenGL, allowing to easily create complex visual scenes • With OSG you do not need to use other APIs like MFC, GTK or Glut (windows and device libs) • With OSG you can read/show several 3D file formats as for example VRML, OBJ, DirectX (.X), OSG using textures, lights, particles and other visual effects • OSG works in Windows and Linux Environments creating portable graphical applications Programa de Pós-Graduação em Computação Aplicada PIPCA Grupo de Inteligência Artificial - GIA Virtual Reality Tools OSG (Open Scene Graph) + ODE (Open Dynamics Engine) OSG – Primitive Objects Programa de Pós-Graduação em Computação Aplicada PIPCA Grupo de Inteligência Artificial - GIA 2 Virtual Reality Tools OSG (Open Scene Graph) + ODE (Open Dynamics Engine) OSG – Textures Programa de Pós-Graduação em Computação Aplicada PIPCA Grupo de Inteligência
    [Show full text]
  • 3D Graphics Technologies for Web Applications an Evaluation from the Perspective of a Real World Application
    Institutionen för systemteknik Department of Electrical Engineering Examensarbete 3D Graphics Technologies for Web Applications An Evaluation from the Perspective of a Real World Application Master thesis performed in information coding by Klara Waern´er LiTH-ISY-EX--12/4562--SE Link¨oping 2012-06-19 Department of Electrical Engineering Linköpings tekniska högskola Linköpings universitet Linköpings universitet SE-581 83 Linköping, Sweden 581 83 Linköping 3D Graphics Technologies for Web Applications An Evaluation from the Perspective of a Real World Application Master thesis in information coding at Link¨oping Institute of Technology by Klara Waern´er LiTH-ISY-EX--12/4562--SE Supervisors: Fredrik Bennet SICK IVP AB Jens Ogniewski ISY, Link¨opingUniversity Examiner: Ingemar Ragnemalm ISY, Link¨opingUniversity Link¨oping2012-06-19 Presentation Date Department and Division 2012-05-31 Department of Electrical Engineering Publishing Date (Electronic version) 2012-06-19 Language Type of Publication ISBN (Licentiate thesis) X English Licentiate thesis ISRN: LiTH-ISY-EX--12/4562--SE Other (specify below) X Degree thesis Thesis C-level Title of series (Licentiate thesis) Thesis D-level Report Number of Pages Other (specify below) Series number/ISSN (Licentiate thesis) 90 URL, Electronic Version http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-78726 Publication Title 3D Graphics Technologies for Web Applications: An Evaluation from the Perspective of a Real World Application Publication Title (Swedish) Tekniker för 3D-grafik i webbapplikationer: En utvärdering sedd utifrån en riktig applikations perspektiv Author(s) Klara Waernér Abstract Web applications are becoming increasingly sophisticated and functionality that was once exclusive to regular desktop applications can now be found in web applications as well.
    [Show full text]