Outdoor 3D Scenery. Rendering a 3D world using Geometrical Mipmaps. and Quadtree Culling. Andreas Spante. Jonas Roos
|
|
- Percival Allen
- 7 years ago
- Views:
Transcription
1 Outdoor 3D Scenery Rendering a 3D world using Geometrical Mipmaps and Quadtree Culling Andreas Spante Jonas Roos
2 Luleå Tekniska Universitet Institution Skellefteå GSCEPT Immense 3D Scenery - Building a 3D world using Geometrical Mipmaps and Quadtree Culling by Spante, Andreas Roos, Jonas - GSCEPT GSCEPT 2005 Abstract Theoretical and practical information on how to effectively build an outside world using Geometrical Mipmaps, Heightmaps and Quadtree culling.
3 Table of Contents: 1 INTRODUCTION PROJECT INTRODUCTION CONTRACTOR AND PERFORMERS: QUESTION AT ISSUE: GOAL: METHODS ACKNOWLEDGEMENTS OVERVIEW LEVEL OF DETAIL ALGORITHMS SPATIAL DATA STRUCTURES QUADTREES OCTREES IMPLEMENTATION TERRAIN REPRESENTATION GEOMETRICAL MIPMAPPING SOLVING GEOMETRY GAPS CHOOSING AN APPROPRIATE LEVEL OF DETAIL FUTURE WORK RESULTS CONCLUSION SUMMARY REFERENCES:... 15
4 1 Introduction 1.1 Project introduction The problem with an outdoor world is that one wants to show as many triangles as possible but on the other hand wants as high framerate as possible. The applications that have these problems are usually games and other graphical applications. The most common way to eliminate these problems is to use some kind of Level of detail algorithm and to use Octree or Quadtree culling. 1.2 Contractor and performers: The project was carried out by Andreas Spante and Jonas Roos studying at the GSCEPT institution at Luleå Technical University. It is part of the examination of a course in Graphical Programming. 1.3 Question at issue: We want to find out if there is a suitable method for real time rendering of terrain in AgentFX. 1.4 Goal: The goal with this project is to find out the most suitable level of detail algorithm and culling algorithm for an outdoor 3D world and implement them into a simple demo using AgentFX. 1.5 Methods Research of existing material Mathematics 1.6 Acknowledgements We acknowledge Lasse Wedin and Martin Börjeson for their work in the same area. We've had a lot of discussions regarding implementation and have talked a lot about the best solutions available for our problems.
5 2 Overview 2.1 Level of detail algorithms There are couple of algorithms that can be used for the level of detail problem that one has when dealing with large map data. Here we will look at some of the differnt algorithms and talk briefly about them. Geometrical ClipMap Overview: A Geometrical Clipmap is a sort of level of detail algorithm that utilizes the fast memory of the graphics card for vertex buffer storage. When the camera moves over the landscape the vertex buffers are incrementally refilled. That assures visual continuety and a stable framerate. The terain is cashed in the memory as nested regular grids around the viewer and the closer they get the finer the detail gets. They are stored at power of two resolutions.[l4] Fig 1: Illustration using a coarse geometry clipmap. [B1] ROAMing Overview: ROAMing is a level of detail algorithm where all the triangles are sorted into two binary trees that later will be manipulated. The entire terrain dataset is encapsulated in the two combined root triangles. The vertices of the root triangles are extracted from the root node in the quadtree strukture. Each triangle is assigned pointers to its neighbours and to its left and right child. When this is done the root triangles are pushed onto a FIFO queue so that one can do a bredth first traversal through the binary trees. The algorithm has five phases that are done every frame. First it uses recursive, incremental update to calculate the view frustum culling. The second step is to do a priority update for the triangles that can be split or merged in step three. Then it merges or splits the triangles that are in the two priority cueues. The last step is to update the triangles affected by the culling in step one and the split/merges from phase three.[l5] MipMapping Overview: Geometrical MipMapping is a level of detail algorithm based on the same theory as that of Texture MipMaps. It uses a terrain grid that is divided into a set number of quadratic terrain blocks. For each block, a set number of versions with different level of detail are created. Based on the distance away from the camera along with a few other conditions to avoid unwanted popping artifacts, an appropriate GeoMipMap level is chosen for each block. [L1]
6 2.2 Spatial Data Structures We have looked at different spatial data structures to handle the culling that needs to be taken care of in our program. Here we will discuss the pros and cons with the different techniques. Spatial Data Overview: A spatial data structure is a structure that takes care of geometry data and organizes it in an n-dimensional tree. They are usually used for culling, ray tracing and collision detection. The concept with the spatial data structure is that instead of checking all geometry one can traverse trough a tree and only check the relevant geometry. A linear search for a node would be an O(n) search and a tree search would take O(log n) searches. It is quite expensive to build a spatial data structure so they are often preprocessed. [L2] For example: If there are 64 geometry nodes and one just want to draw one of them the worst case scenario with a linear structure would take 64 searches to find the node. When using a Quadtree structure the worst case would take 12 searches. Root Node Internal Node Internal Node Internal Node Internal Node Internal NodeInternal NodeInternal NodeInternal Node Leaf Node Leaf Node Leaf Node Leaf Node Fig 2: A Quadtree Search with tree levels will in the worst case make 12 searches to find the right Node. There are a number of different spatial data structures, the most commonly used for culling in an outdoor environment are Octrees and Quadtrees. If there is more than one level in the tree a Quadtree consists of four internal nodes at the first level and an Octree consists of eight nodes.
7 2.3 Quadtrees A quadtree is a spatial data structure in which each internal node can consist of up to four children. It is an iteration process where each of the nodes are divided along the center of the nodes x and y axis. The iteration continues until some predefined condition is fulfilled. The last level of the tree consists of the leaf nodes which contain the actual data. The data is usually an object or a set of polygons. When using Quadtrees with view frustum culling the program checks if the internal node is inside, outside or partially inside the view frustum. If the node is entirely inside the frustum it gets attached to the rendering node. If it is entirely outside the frustum the program will discard it and not make any more calculations on that node. If the node is partially inside the view frustum it will continue to check the nodes children and see if the are inside, outside or partially inside the frustum. The iteration will continue until all the affected nodes have been discarded or attached to the rendering node. The last step is to send the rendering node down the graphical pipeline for rendering. [L2], [L3] Fig 3: A simple Picture of how a Quadtree is divided along the X and Y axis in a 2D plane. The red square is the root node, the blue square is one of four internal nodes and the green square is another internal node within the blue node. The leaf nodes are represented by the yellow squares and they contain the actual graphical data. The Quadtree is best used for a static landscape which has no flying objects since the height is cut out of the equation. So if you for example have an object 20 meters above ground and the camera is on 10 meters looking down the program will not cull away that object. This means that it will be sent down to the graphical pipeline and drawn for no use at all.
8 2.4 Octrees An Octree works just as a Quadtree but in 3 dimensions. So each iteration splits the cube along the x, y and z axis. The iteration will continue until the predefined condition is fulfilled. The predefined condition might be that the smallest cube should fit the entire object or that no cube should be smaller than 2x2x2 pixels. So each internal node has eight children instead of the four in Quadtree culling. The data is contained in the leaf nodes which has no children. When doing view frustum culling with Octrees it checks if a box is inside, outside or partially inside the frustum. If a box is inside the frustum it will be added to the rendering node and if it's not it will be discarded. When a box is partially inside the view frustum it will check its children to see if they are inside, outside or partially inside the frustum. The iteration will continue until all the affected boxes are checked. Lastly the rendering node is sent down the pipeline for rendering. [L2], [L3] Fig 4: A simple picture showing how an Octree is divided along the center of the nodes X, Y and Z axis. [B2] Octrees are ideal for culling in an open 3D room such as open space with planets and stars. The drawback when using Octrees for culling is that it takes more time than using a Quadtree.
9 3 Implementation We wanted to base our implementation on algorithms that are easy to understand and simple to implement - basic but still fast. In keeping it simple we decided to avoid any algorithms requiring GPU programming and instead try to make use of the GPU power by sending appropriately sized triangle batches to the GPU. Based on these wishes, Geometrical MipMapping felt like the most suitable choice; easier to understand than ROAMing and not requiring any GPU programming like Clipmaps. We will use quadtree culling in our program since we are not working with an immense universe and we put speed in the foremost room. 3.1 Terrain representation Our terrain is built up as a 2n x 2n grid in the xz-plane consisiting of (2n+1) x (2n+1) vertices with a fixed distance between them. Each vertex is then assigned a height (y) value from an 8-bit grayscale heightmap of the same dimensions as the terrain. This means one has 256 different shades of gray, from black to white, where each shade represents a different height. This representation is not only simple to implement but also very suitable for geometrical mipmapping. The main disadvantage is that it doesn't support overhangs, which might be an issue depending on what type of terrain you intend to make [L1]. In our case, the heightmap is loaded from a.raw-file which is the format Terragen [P1] exports to, but most image formats should work. Fig 5: An 8 x 8 grid (9 x 9 vertices) where each circle represents a vertex. The height value is fetched from an 8-bit grayscale heightmap.
10 3.2 Geometrical mipmapping The concept of geometrical mipmapping of terrain is very similar to that of texture mipmaps [L2]. This is basically how it applies to terrain rendering: First you divide the terrain into fixed size terrain blocks of size 2m x 2m. For our application, we use a terrain size of 1024 x 1024 built up from 256 terrain blocks where each block is of the size 64 x 64 (units). Experimentation is key when trying to figure out the optimal terrain size and block size for various applications Fig 6: A 16 x 16 terrain build up from 16 4 x 4 blocks. For each block, a set number of versions with different resolution are created (dependant on the block size). This is what is called geometrical mipmaps [L1]. They can be precalculated at terrain load time and stored in memory. The idea being that a terrain block far away from the camera doesn't need to be rendered at the same resolution as a nearby block, so we choose to render a lower resolution version of the block further away. The default (highest) resolution version of each block is called Level 0. When making this block a step size of 1 is used, meaning the distance between vertices (vertical and horizontal) is one unit. For this level, all values in the heightmap are utilized giving the block a very fine detail. The second highest resolution of a block is called Level 1 and so on. Every time you step down one level in resolution, you double the step size. In effect, each lower level resolution version contains only ¼ the number of triangles compared to the level above it.
11 Step = 1 Step = 2 Level 0 Step = 4 Level 1 Step = 8 Level 2 Level 3 Fig 7: Illustrations of the different levels of an 8 x 8 sized terrain block. The green circles show the vertices used to build up that particular level and the white circles show the vertices skipped.
12 3.3 Solving geometry gaps But what happens when you have two blocks with different level of detail next to each other as in the picture below? Fig 8: Adjacent blocks of different detail level. Geometry gaps will occur along the edge between the blocks (thick line) as a result of the fact that the less detailed block uses fewer vertices to build up the edge. One way to solve this is through the use of triangle fans as decribed in [L1]. We've opted for a somewhat different approach that felt easier to implement with AgentFX [P2]. First, the edges are separated from the centrum of the block. Each edge is then adjusted to fit the resolution of the adjacent block as shown in the following images: Level 1 North Edge West Edge East Edge Center South Edge Level 0 Fig 9: The yellow edges (north and west) are made to fit a lower resolution block while the blue edges (south and east) are made to fit a a block of the same resolution.
13 In separating the edges like this, none of the them need to take into account the detail level of the block's other edges (for example, the north edge doesn't need to know the detail level of the east and west edge). The main drawback of patching blocks together this way is that the difference in detail between two adjacent blocks may never be more than one level. However, this limit also makes it easier to precalculate the edges and store them in memory, since we only need two versions of each edge for each level except for the lowest level of detail (for which we need only one). To be able to choose the appropriate edges for a block, each block needs to keep references to its neighbors. When two adjacent blocks have different detail, it's always the block with the higher resolution that is responsible for making its edge fit to the lower resolution block. 3.4 Choosing an appropriate Level of Detail We decided to go with the easiest and most straightforward way to choose an appropriate resolution for a block, which simply is to calculate the distance away from the camera and set the detail accordingly. If a block is far away from the camera a lower resolution version will be used. 3.5 Texturing and Shading For texturing, we use a single large texture that is stretched over the entire map. The AFX Texture Manager class is utilized to load the texture into memory. Based on the height map, we then calculate a normal for each vertex to give the terrain a nicely shaded look when lighting is applied. A single white point light is used to light the scene. 4 Future work Improvements that can be made to the application: Take into account the height difference between different levels of detail when deciding which version of the block to be used, instead of just distance away from the camera, to reduce popping artifacts. MultiTexturing
14 5 Results Results from testing on a Pentium GHz with a Radeon 9800 Pro and 512 MB RAM. Block size: 65 x 65 vertices Map size: 1025 x 1025 vertices LOD enabled Culling enabled Average FPS Conclusion It is possible to create an Outdoor 3D scenery in AgentFX using Geometrical MipMapping and Quadtree culling. The results showed us that the algorithms we used were a good choice and provided satisfactory framerates. 7 Summary To improve computer rendering speed of large terrains, one has to use some kind of Level of Detail algorithm. This paper describes the theory behind one such algorithm called geometrical mipmapping To improve the culling in OpenGL it is a good idea to use some kind of Spatial Data structure. The most efficient one for culling in an outdoor 3D environment without loose flying objects is Quadtree Culling. Quadtrees uses an iteration process that checks if a quadrant is inside, outside or partially inside the View frustum. The nodes that are inside the frustum will be set as children to a draw node which will get passed down the graphical pipeline to be rendered.
15 References: [B1] Geometrical Clipmap [B2] Octree Image [L1] Willem H. de Boer, Fast Terrain Rendering Using Geometrical MipMapping [L2] Real-Time Rendering. Tomas Möller, Eric Haines. A K Peters, Ltd. ISBN [L3] Object Representation by Means of Nonminimal Division Quadtrees and Octrees [L4] Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids [L5] View-dependent Real-time Terrain Rendering Using Static LOD [L4] GPGPU:General General-Purpose Purpose Computation on GPUs [P1] Terragen, Planetside Software [P2] AgentFX, Agency 9 AB
Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg
Image Processing and Computer Graphics Rendering Pipeline Matthias Teschner Computer Science Department University of Freiburg Outline introduction rendering pipeline vertex processing primitive processing
More informationINTRODUCTION TO RENDERING TECHNIQUES
INTRODUCTION TO RENDERING TECHNIQUES 22 Mar. 212 Yanir Kleiman What is 3D Graphics? Why 3D? Draw one frame at a time Model only once X 24 frames per second Color / texture only once 15, frames for a feature
More informationA Short Introduction to Computer Graphics
A Short Introduction to Computer Graphics Frédo Durand MIT Laboratory for Computer Science 1 Introduction Chapter I: Basics Although computer graphics is a vast field that encompasses almost any graphical
More informationScan-Line Fill. Scan-Line Algorithm. Sort by scan line Fill each span vertex order generated by vertex list
Scan-Line Fill Can also fill by maintaining a data structure of all intersections of polygons with scan lines Sort by scan line Fill each span vertex order generated by vertex list desired order Scan-Line
More informationModern Graphics Engine Design. Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com
Modern Graphics Engine Design Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com Overview Modern Engine Features Modern Engine Challenges Scene Management Culling & Batching Geometry Management Collision
More information3D Drawing. Single Point Perspective with Diminishing Spaces
3D Drawing Single Point Perspective with Diminishing Spaces The following document helps describe the basic process for generating a 3D representation of a simple 2D plan. For this exercise we will be
More information3D Drawing. Single Point Perspective with Diminishing Spaces
3D Drawing Single Point Perspective with Diminishing Spaces The following document helps describe the basic process for generating a 3D representation of a simple 2D plan. For this exercise we will be
More information1. Relational database accesses data in a sequential form. (Figures 7.1, 7.2)
Chapter 7 Data Structures for Computer Graphics (This chapter was written for programmers - option in lecture course) Any computer model of an Object must comprise three different types of entities: 1.
More information1. Definition of the project. 2. Initial version (simplified texture) 3. Second version (full textures) 5. Modelling and inserting 3D objects
Index 1. Definition of the project 2. Initial version (simplified texture) 3. Second version (full textures) 4. Final version in C++ 5. Modelling and inserting 3D objects 6. Interface design 7. Additional
More informationConsolidated Visualization of Enormous 3D Scan Point Clouds with Scanopy
Consolidated Visualization of Enormous 3D Scan Point Clouds with Scanopy Claus SCHEIBLAUER 1 / Michael PREGESBAUER 2 1 Institute of Computer Graphics and Algorithms, Vienna University of Technology, Austria
More informationCUBE-MAP DATA STRUCTURE FOR INTERACTIVE GLOBAL ILLUMINATION COMPUTATION IN DYNAMIC DIFFUSE ENVIRONMENTS
ICCVG 2002 Zakopane, 25-29 Sept. 2002 Rafal Mantiuk (1,2), Sumanta Pattanaik (1), Karol Myszkowski (3) (1) University of Central Florida, USA, (2) Technical University of Szczecin, Poland, (3) Max- Planck-Institut
More informationIntroduction to Computer Graphics
Introduction to Computer Graphics Torsten Möller TASC 8021 778-782-2215 torsten@sfu.ca www.cs.sfu.ca/~torsten Today What is computer graphics? Contents of this course Syllabus Overview of course topics
More informationTopographic Change Detection Using CloudCompare Version 1.0
Topographic Change Detection Using CloudCompare Version 1.0 Emily Kleber, Arizona State University Edwin Nissen, Colorado School of Mines J Ramón Arrowsmith, Arizona State University Introduction CloudCompare
More informationVisualization of 2D Domains
Visualization of 2D Domains This part of the visualization package is intended to supply a simple graphical interface for 2- dimensional finite element data structures. Furthermore, it is used as the low
More informationBinary Search Trees CMPSC 122
Binary Search Trees CMPSC 122 Note: This notes packet has significant overlap with the first set of trees notes I do in CMPSC 360, but goes into much greater depth on turning BSTs into pseudocode than
More informationA NEW METHOD OF STORAGE AND VISUALIZATION FOR MASSIVE POINT CLOUD DATASET
22nd CIPA Symposium, October 11-15, 2009, Kyoto, Japan A NEW METHOD OF STORAGE AND VISUALIZATION FOR MASSIVE POINT CLOUD DATASET Zhiqiang Du*, Qiaoxiong Li State Key Laboratory of Information Engineering
More informationDATA STRUCTURES USING C
DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give
More informationTriangulation by Ear Clipping
Triangulation by Ear Clipping David Eberly Geometric Tools, LLC http://www.geometrictools.com/ Copyright c 1998-2016. All Rights Reserved. Created: November 18, 2002 Last Modified: August 16, 2015 Contents
More informationA FRAMEWORK FOR REAL-TIME TERRAIN VISUALIZATION WITH ADAPTIVE SEMI- REGULAR MESHES
A FRAMEWORK FOR REAL-TIME TERRAIN VISUALIZATION WITH ADAPTIVE SEMI- REGULAR MESHES Lourena Rocha, Sérgio Pinheiro, Marcelo B. Vieira, Luiz Velho IMPA - Instituto Nacional de Matemática Pura e Aplicada
More informationShader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group
Shader Model 3.0 Ashu Rege NVIDIA Developer Technology Group Talk Outline Quick Intro GeForce 6 Series (NV4X family) New Vertex Shader Features Vertex Texture Fetch Longer Programs and Dynamic Flow Control
More informationCSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) 3 4 4 7 5 9 6 16 7 8 8 4 9 8 10 4 Total 92.
Name: Email ID: CSE 326, Data Structures Section: Sample Final Exam Instructions: The exam is closed book, closed notes. Unless otherwise stated, N denotes the number of elements in the data structure
More informationChapter 13: Query Processing. Basic Steps in Query Processing
Chapter 13: Query Processing! Overview! Measures of Query Cost! Selection Operation! Sorting! Join Operation! Other Operations! Evaluation of Expressions 13.1 Basic Steps in Query Processing 1. Parsing
More informationHardware design for ray tracing
Hardware design for ray tracing Jae-sung Yoon Introduction Realtime ray tracing performance has recently been achieved even on single CPU. [Wald et al. 2001, 2002, 2004] However, higher resolutions, complex
More informationSECONDARY STORAGE TERRAIN VISUALIZATION IN A CLIENT-SERVER ENVIRONMENT: A SURVEY
SECONDARY STORAGE TERRAIN VISUALIZATION IN A CLIENT-SERVER ENVIRONMENT: A SURVEY Kai Xu and Xiaofang Zhou School of Information Technology and Electrical Engineering The University of Queensland, Brisbane,
More informationDual Marching Cubes: Primal Contouring of Dual Grids
Dual Marching Cubes: Primal Contouring of Dual Grids Scott Schaefer and Joe Warren Rice University 6100 Main St. Houston, TX 77005 sschaefe@rice.edu and jwarren@rice.edu Abstract We present a method for
More informationGPU Architecture. Michael Doggett ATI
GPU Architecture Michael Doggett ATI GPU Architecture RADEON X1800/X1900 Microsoft s XBOX360 Xenos GPU GPU research areas ATI - Driving the Visual Experience Everywhere Products from cell phones to super
More informationRecent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005
Recent Advances and Future Trends in Graphics Hardware Michael Doggett Architect November 23, 2005 Overview XBOX360 GPU : Xenos Rendering performance GPU architecture Unified shader Memory Export Texture/Vertex
More informationDevelopment and Evaluation of Point Cloud Compression for the Point Cloud Library
Development and Evaluation of Point Cloud Compression for the Institute for Media Technology, TUM, Germany May 12, 2011 Motivation Point Cloud Stream Compression Network Point Cloud Stream Decompression
More informationCabri Geometry Application User Guide
Cabri Geometry Application User Guide Preview of Geometry... 2 Learning the Basics... 3 Managing File Operations... 12 Setting Application Preferences... 14 Selecting and Moving Objects... 17 Deleting
More informationMultiresolution 3D Rendering on Mobile Devices
Multiresolution 3D Rendering on Mobile Devices Javier Lluch, Rafa Gaitán, Miguel Escrivá, and Emilio Camahort Computer Graphics Section Departament of Computer Science Polytechnic University of Valencia
More informationVisualizing Data: Scalable Interactivity
Visualizing Data: Scalable Interactivity The best data visualizations illustrate hidden information and structure contained in a data set. As access to large data sets has grown, so has the need for interactive
More informationBachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries
First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as
More informationBig Data and Scripting. Part 4: Memory Hierarchies
1, Big Data and Scripting Part 4: Memory Hierarchies 2, Model and Definitions memory size: M machine words total storage (on disk) of N elements (N is very large) disk size unlimited (for our considerations)
More informationHow To Create A Surface From Points On A Computer With A Marching Cube
Surface Reconstruction from a Point Cloud with Normals Landon Boyd and Massih Khorvash Department of Computer Science University of British Columbia,2366 Main Mall Vancouver, BC, V6T1Z4, Canada {blandon,khorvash}@cs.ubc.ca
More informationCalibration Best Practices
Calibration Best Practices for Manufacturers SpectraCal, Inc. 17544 Midvale Avenue N., Suite 100 Shoreline, WA 98133 (206) 420-7514 info@spectracal.com http://studio.spectracal.com Calibration Best Practices
More informationGAP CLOSING. 2D Measurement. Intermediate / Senior Student Book
GAP CLOSING 2D Measurement Intermediate / Senior Student Book 2-D Measurement Diagnostic...3 Areas of Parallelograms, Triangles, and Trapezoids...6 Areas of Composite Shapes...14 Circumferences and Areas
More information1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
More informationOpenGL Performance Tuning
OpenGL Performance Tuning Evan Hart ATI Pipeline slides courtesy John Spitzer - NVIDIA Overview What to look for in tuning How it relates to the graphics pipeline Modern areas of interest Vertex Buffer
More informationPersistent Data Structures
6.854 Advanced Algorithms Lecture 2: September 9, 2005 Scribes: Sommer Gentry, Eddie Kohler Lecturer: David Karger Persistent Data Structures 2.1 Introduction and motivation So far, we ve seen only ephemeral
More informationSilverlight for Windows Embedded Graphics and Rendering Pipeline 1
Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline Windows Embedded Compact 7 Technical Article Writers: David Franklin,
More informationAlgebra Geometry Glossary. 90 angle
lgebra Geometry Glossary 1) acute angle an angle less than 90 acute angle 90 angle 2) acute triangle a triangle where all angles are less than 90 3) adjacent angles angles that share a common leg Example:
More informationComputational Geometry. Lecture 1: Introduction and Convex Hulls
Lecture 1: Introduction and convex hulls 1 Geometry: points, lines,... Plane (two-dimensional), R 2 Space (three-dimensional), R 3 Space (higher-dimensional), R d A point in the plane, 3-dimensional space,
More informationOptimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August
Optimizing Unity Games for Mobile Platforms Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August Agenda Introduction The author and ARM Preliminary knowledge Unity Pro, OpenGL ES 3.0 Identify
More informationHome Page. Data Structures. Title Page. Page 1 of 24. Go Back. Full Screen. Close. Quit
Data Structures Page 1 of 24 A.1. Arrays (Vectors) n-element vector start address + ielementsize 0 +1 +2 +3 +4... +n-1 start address continuous memory block static, if size is known at compile time dynamic,
More informationIntersection of a Line and a Convex. Hull of Points Cloud
Applied Mathematical Sciences, Vol. 7, 213, no. 13, 5139-5149 HIKARI Ltd, www.m-hikari.com http://dx.doi.org/1.12988/ams.213.37372 Intersection of a Line and a Convex Hull of Points Cloud R. P. Koptelov
More informationOptimization for DirectX9 Graphics. Ashu Rege
Optimization for DirectX9 Graphics Ashu Rege Last Year: Batch, Batch, Batch Moral of the story: Small batches BAD What is a batch Every DrawIndexedPrimitive call is a batch All render, texture, shader,...
More informationMonash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007
Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Questions 2007 INSTRUCTIONS: Answer all questions. Spend approximately 1 minute per mark. Question 1 30 Marks Total
More informationMATHEMATICAL ENGINEERING TECHNICAL REPORTS. The Best-fit Heuristic for the Rectangular Strip Packing Problem: An Efficient Implementation
MATHEMATICAL ENGINEERING TECHNICAL REPORTS The Best-fit Heuristic for the Rectangular Strip Packing Problem: An Efficient Implementation Shinji IMAHORI, Mutsunori YAGIURA METR 2007 53 September 2007 DEPARTMENT
More information5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.
1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The
More informationKrishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C
Tutorial#1 Q 1:- Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2:- What is a Data Type? Differentiate
More informationThe following is an overview of lessons included in the tutorial.
Chapter 2 Tutorial Tutorial Introduction This tutorial is designed to introduce you to some of Surfer's basic features. After you have completed the tutorial, you should be able to begin creating your
More informationTECHNICAL ANALYSIS OF REMOTE 3D
ABSTRACT TECHNICAL ANALYSIS OF REMOTE 3D VISUALIZATION ON MOBILE DEVICES Ms. U. S. Junghare 1, Dr. V. M. Thakare 2, Dr. R. V. Dharaskar 3, Dr. S. S. Sherekar 4 1 Brijlal Biyani Science College, Amravati,
More informationData Structure [Question Bank]
Unit I (Analysis of Algorithms) 1. What are algorithms and how they are useful? 2. Describe the factor on best algorithms depends on? 3. Differentiate: Correct & Incorrect Algorithms? 4. Write short note:
More informationCOMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies
COMP175: Computer Graphics Lecture 1 Introduction and Display Technologies Course mechanics Number: COMP 175-01, Fall 2009 Meetings: TR 1:30-2:45pm Instructor: Sara Su (sarasu@cs.tufts.edu) TA: Matt Menke
More information3D-GIS in the Cloud USER MANUAL. August, 2014
3D-GIS in the Cloud USER MANUAL August, 2014 3D GIS in the Cloud User Manual August, 2014 Table of Contents 1. Quick Reference: Navigating and Exploring in the 3D GIS in the Cloud... 2 1.1 Using the Mouse...
More informationComputer Graphics Hardware An Overview
Computer Graphics Hardware An Overview Graphics System Monitor Input devices CPU/Memory GPU Raster Graphics System Raster: An array of picture elements Based on raster-scan TV technology The screen (and
More informationCourse: 3D Design Title: Deciduous Trees Blender: Version 2.6X Level: Beginning Author; Neal Hirsig (nhirsig@tufts.edu) (June 2012) Deciduous Trees
Course: 3D Design Title: Deciduous Trees Blender: Version 2.6X Level: Beginning Author; Neal Hirsig (nhirsig@tufts.edu) (June 2012) Deciduous Trees In general, modeling trees is a long and somewhat tedious
More informationEuclidean Minimum Spanning Trees Based on Well Separated Pair Decompositions Chaojun Li. Advised by: Dave Mount. May 22, 2014
Euclidean Minimum Spanning Trees Based on Well Separated Pair Decompositions Chaojun Li Advised by: Dave Mount May 22, 2014 1 INTRODUCTION In this report we consider the implementation of an efficient
More informationBinary Search Trees. A Generic Tree. Binary Trees. Nodes in a binary search tree ( B-S-T) are of the form. P parent. Key. Satellite data L R
Binary Search Trees A Generic Tree Nodes in a binary search tree ( B-S-T) are of the form P parent Key A Satellite data L R B C D E F G H I J The B-S-T has a root node which is the only node whose parent
More informationWe can display an object on a monitor screen in three different computer-model forms: Wireframe model Surface Model Solid model
CHAPTER 4 CURVES 4.1 Introduction In order to understand the significance of curves, we should look into the types of model representations that are used in geometric modeling. Curves play a very significant
More informationFast Sequential Summation Algorithms Using Augmented Data Structures
Fast Sequential Summation Algorithms Using Augmented Data Structures Vadim Stadnik vadim.stadnik@gmail.com Abstract This paper provides an introduction to the design of augmented data structures that offer
More informationComputer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)
Computer Graphics CS 54 Lecture 1 (Part 1) Curves Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) So Far Dealt with straight lines and flat surfaces Real world objects include
More informationSolidWorks Implementation Guides. Sketching Concepts
SolidWorks Implementation Guides Sketching Concepts Sketching in SolidWorks is the basis for creating features. Features are the basis for creating parts, which can be put together into assemblies. Sketch
More information5. Binary objects labeling
Image Processing - Laboratory 5: Binary objects labeling 1 5. Binary objects labeling 5.1. Introduction In this laboratory an object labeling algorithm which allows you to label distinct objects from a
More informationCS 4204 Computer Graphics
CS 4204 Computer Graphics 3D views and projection Adapted from notes by Yong Cao 1 Overview of 3D rendering Modeling: *Define object in local coordinates *Place object in world coordinates (modeling transformation)
More informationReal-time Processing and Visualization of Massive Air-Traffic Data in Digital Landscapes
Real-time Processing and Visualization of Massive Air-Traffic Data in Digital Landscapes Digital Landscape Architecture 2015, Dessau Stefan Buschmann, Matthias Trapp, and Jürgen Döllner Hasso-Plattner-Institut,
More informationChapter 6 - The Scene Graph
Chapter 6 - The Scene Graph Why a scene graph? What is stored in the scene graph? objects appearance camera lights Rendering with a scene graph Practical example 1 The 3D Rendering Pipeline (our version
More informationDEVELOPMENT OF REAL-TIME VISUALIZATION TOOLS FOR THE QUALITY CONTROL OF DIGITAL TERRAIN MODELS AND ORTHOIMAGES
DEVELOPMENT OF REAL-TIME VISUALIZATION TOOLS FOR THE QUALITY CONTROL OF DIGITAL TERRAIN MODELS AND ORTHOIMAGES Dr.-Ing. Manfred Wiggenhagen University of Hanover, Germany Institute for Photogrammetry and
More informationConverting a Number from Decimal to Binary
Converting a Number from Decimal to Binary Convert nonnegative integer in decimal format (base 10) into equivalent binary number (base 2) Rightmost bit of x Remainder of x after division by two Recursive
More informationA VOXELIZATION BASED MESH GENERATION ALGORITHM FOR NUMERICAL MODELS USED IN FOUNDRY ENGINEERING
METALLURGY AND FOUNDRY ENGINEERING Vol. 38, 2012, No. 1 http://dx.doi.org/10.7494/mafe.2012.38.1.43 Micha³ Szucki *, Józef S. Suchy ** A VOXELIZATION BASED MESH GENERATION ALGORITHM FOR NUMERICAL MODELS
More informationPrentice Hall Mathematics: Course 1 2008 Correlated to: Arizona Academic Standards for Mathematics (Grades 6)
PO 1. Express fractions as ratios, comparing two whole numbers (e.g., ¾ is equivalent to 3:4 and 3 to 4). Strand 1: Number Sense and Operations Every student should understand and use all concepts and
More informationWelcome to CorelDRAW, a comprehensive vector-based drawing and graphic-design program for the graphics professional.
Workspace tour Welcome to CorelDRAW, a comprehensive vector-based drawing and graphic-design program for the graphics professional. In this tutorial, you will become familiar with the terminology and workspace
More informationModelling, Extraction and Description of Intrinsic Cues of High Resolution Satellite Images: Independent Component Analysis based approaches
Modelling, Extraction and Description of Intrinsic Cues of High Resolution Satellite Images: Independent Component Analysis based approaches PhD Thesis by Payam Birjandi Director: Prof. Mihai Datcu Problematic
More informationUsing Photorealistic RenderMan for High-Quality Direct Volume Rendering
Using Photorealistic RenderMan for High-Quality Direct Volume Rendering Cyrus Jam cjam@sdsc.edu Mike Bailey mjb@sdsc.edu San Diego Supercomputer Center University of California San Diego Abstract With
More informationALGEBRA. sequence, term, nth term, consecutive, rule, relationship, generate, predict, continue increase, decrease finite, infinite
ALGEBRA Pupils should be taught to: Generate and describe sequences As outcomes, Year 7 pupils should, for example: Use, read and write, spelling correctly: sequence, term, nth term, consecutive, rule,
More informationArrangements And Duality
Arrangements And Duality 3.1 Introduction 3 Point configurations are tbe most basic structure we study in computational geometry. But what about configurations of more complicated shapes? For example,
More informationFour-Dimensional Interactive Visualization System for Transportation Management and Traveler Information
Four-Dimensional Interactive Visualization System for Transportation Management and Traveler Information Michael L. Pack, Phillip Weisberg, and Sujal Bista This research developed a system for visualizing
More informationAdvanced Graphics and Animations for ios Apps
Tools #WWDC14 Advanced Graphics and Animations for ios Apps Session 419 Axel Wefers ios Software Engineer Michael Ingrassia ios Software Engineer 2014 Apple Inc. All rights reserved. Redistribution or
More informationImage Synthesis. Transparency. computer graphics & visualization
Image Synthesis Transparency Inter-Object realism Covers different kinds of interactions between objects Increasing realism in the scene Relationships between objects easier to understand Shadows, Reflections,
More informationHow To Teach Computer Graphics
Computer Graphics Thilo Kielmann Lecture 1: 1 Introduction (basic administrative information) Course Overview + Examples (a.o. Pixar, Blender, ) Graphics Systems Hands-on Session General Introduction http://www.cs.vu.nl/~graphics/
More informationScanners and How to Use Them
Written by Jonathan Sachs Copyright 1996-1999 Digital Light & Color Introduction A scanner is a device that converts images to a digital file you can use with your computer. There are many different types
More informationHow To Make A Texture Map Work Better On A Computer Graphics Card (Or Mac)
Improved Alpha-Tested Magnification for Vector Textures and Special Effects Chris Green Valve (a) 64x64 texture, alpha-blended (b) 64x64 texture, alpha tested (c) 64x64 texture using our technique Figure
More informationGeometry and Measurement
The student will be able to: Geometry and Measurement 1. Demonstrate an understanding of the principles of geometry and measurement and operations using measurements Use the US system of measurement for
More informationPicture Maze Generation by Successive Insertion of Path Segment
1 2 3 Picture Maze Generation by Successive Insertion of Path Segment 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32. ABSTRACT Tomio Kurokawa 1* 1 Aichi Institute of Technology,
More informationVoronoi Treemaps in D3
Voronoi Treemaps in D3 Peter Henry University of Washington phenry@gmail.com Paul Vines University of Washington paul.l.vines@gmail.com ABSTRACT Voronoi treemaps are an alternative to traditional rectangular
More informationAn Introduction to The A* Algorithm
An Introduction to The A* Algorithm Introduction The A* (A-Star) algorithm depicts one of the most popular AI methods used to identify the shortest path between 2 locations in a mapped area. The A* algorithm
More informationClustering & Visualization
Chapter 5 Clustering & Visualization Clustering in high-dimensional databases is an important problem and there are a number of different clustering paradigms which are applicable to high-dimensional data.
More informationTABLE OF CONTENTS. INTRODUCTION... 5 Advance Concrete... 5 Where to find information?... 6 INSTALLATION... 7 STARTING ADVANCE CONCRETE...
Starting Guide TABLE OF CONTENTS INTRODUCTION... 5 Advance Concrete... 5 Where to find information?... 6 INSTALLATION... 7 STARTING ADVANCE CONCRETE... 7 ADVANCE CONCRETE USER INTERFACE... 7 Other important
More informationBinary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *
Binary Heaps A binary heap is another data structure. It implements a priority queue. Priority Queue has the following operations: isempty add (with priority) remove (highest priority) peek (at highest
More informationCurrent Standard: Mathematical Concepts and Applications Shape, Space, and Measurement- Primary
Shape, Space, and Measurement- Primary A student shall apply concepts of shape, space, and measurement to solve problems involving two- and three-dimensional shapes by demonstrating an understanding of:
More informationA unified representation for interactive 3D modeling
A unified representation for interactive 3D modeling Dragan Tubić, Patrick Hébert, Jean-Daniel Deschênes and Denis Laurendeau Computer Vision and Systems Laboratory, University Laval, Québec, Canada [tdragan,hebert,laurendeau]@gel.ulaval.ca
More informationMaking natural looking Volumetric Clouds In Blender 2.48a
I think that everyone using Blender has made some trials about making volumetric clouds. The truth is that a kind of volumetric clouds is already available in Blender for a long time, thanks to the 3D
More information10CS35: Data Structures Using C
CS35: Data Structures Using C QUESTION BANK REVIEW OF STRUCTURES AND POINTERS, INTRODUCTION TO SPECIAL FEATURES OF C OBJECTIVE: Learn : Usage of structures, unions - a conventional tool for handling a
More informationCALCULATING THE AREA OF A FLOWER BED AND CALCULATING NUMBER OF PLANTS NEEDED
This resource has been produced as a result of a grant awarded by LSIS. The grant was made available through the Skills for Life Support Programme in 2010. The resource has been developed by (managers
More informationMath Content by Strand 1
Patterns, Functions, and Change Math Content by Strand 1 Kindergarten Kindergarten students construct, describe, extend, and determine what comes next in repeating patterns. To identify and construct repeating
More informationInteractive Information Visualization using Graphics Hardware Študentská vedecká konferencia 2006
FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITY KOMENSKHO V BRATISLAVE Katedra aplikovanej informatiky Interactive Information Visualization using Graphics Hardware Študentská vedecká konferencia 2006
More informationThe Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA
The Evolution of Computer Graphics Tony Tamasi SVP, Content & Technology, NVIDIA Graphics Make great images intricate shapes complex optical effects seamless motion Make them fast invent clever techniques
More informationEXPLORING ALGORITHMIC GEOMETRY WITH BEETLE BLOCKS: A GRAPHICAL PROGRAMMING LANGUAGE FOR GENERATING 3D FORMS
15 TH INTERNATIONAL CONFERENCE ON GEOMETRY AND GRAPHICS 2012 ISGG 1-5 AUGUST, 2012, MONTREAL, CANADA EXPLORING ALGORITHMIC GEOMETRY WITH BEETLE BLOCKS: A GRAPHICAL PROGRAMMING LANGUAGE FOR GENERATING 3D
More informationAn Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration
An Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration Toktam Taghavi, Andy D. Pimentel Computer Systems Architecture Group, Informatics Institute
More informationTutorial 8 Raster Data Analysis
Objectives Tutorial 8 Raster Data Analysis This tutorial is designed to introduce you to a basic set of raster-based analyses including: 1. Displaying Digital Elevation Model (DEM) 2. Slope calculations
More information