simulation engines tda571 dit030 3d graphics part 1
play

Simulation Engines TDA571|DIT030 3D Graphics - Part 1 Tommaso - PowerPoint PPT Presentation

Simulation Engines TDA571|DIT030 3D Graphics - Part 1 Tommaso Piazza 1 3D Graphics IDC | Interaction Design Collegium 2 Once again... Real-time 3D graphics is all about triangles Properties of a renderable triangle Vertices


  1. Simulation Engines TDA571|DIT030 3D Graphics - Part 1 Tommaso Piazza 1

  2. 3D Graphics IDC | Interaction Design Collegium 2

  3. Once again...  Real-time 3D graphics is all about triangles  Properties of a renderable triangle  Vertices  Normals  Vertex order  ( Tangents )  (Binormals/Bitangents)  (...)  3D graphics is the art of coloring triangles. IDC | Interaction Design Collegium 3

  4. 3D Graphics is also about...  Vectors  Matrices  Quaternions  Loads and loads of mathematical operations on the above.  If you feel that you are shaky on vector algebra, take a look in your old math books. You will thank yourself later. IDC | Interaction Design Collegium 4

  5. Categorization of 3D entities  Static  Objects that are immutable  Good candidates for extreme optimization  Dynamic  Moves or changes over time  Harder to optimize  Animated  Could be either static or dynamic  The vertex object can not be locked IDC | Interaction Design Collegium 5

  6. Spatial data structures  Demands on real-time graphics grow rapidly  Modern graphics hardware is:  Fast  Programmable  Has plenty of memory  However...  ”The fastest polygon to render is the one never sent down to the accelerator's pipeline .” IDC | Interaction Design Collegium 6

  7. Words of wisdom  Performances are  "25k batches/s @ 100% 1GHz CPU"  To run smoothly  (i 60fps, 417 batches) IDC | Interaction Design Collegium 7

  8. Spatial data structures  A spatial data structure:  Orders geometric data by its location  Is often hierarchic, which allows O(log n) searches and rapidly discarding irrelevant data  Spatial data structures can be expensive to construct. Construction is often preprocessed  Separate structures for static and dynamic data IDC | Interaction Design Collegium 8

  9. Spatial Data Structures  Sample applications  Collision detection  Location queries  Chemical simulations  Rendering IDC | Interaction Design Collegium 9

  10. Bounding volume hierarchies  In general: better fit = more memory and more expensive intersection algorithm  Axis-Aligned Bounding Boxes (AABB)  The simplest type of bounding box  Enclosed by a model's minimum and maximum values along the x-, y- and z-axis  Ordinarily described by a center and the distance from the center to the edge along each axis IDC | Interaction Design Collegium 10

  11. Bounding volume hierarchies  Oriented Bounding Boxes (OBB)  Similar to AABB's, but rotated to fit the model more tightly  Ordinarily described by a center, three normalized vectors and the distance from the center to the edges  k-Discrete Oriented Polytope (k-DOP)  Consists of k/2 normalized plane-normals associated with two scalars. Together they describe the volume between the two planes  The k-DOP is the volume enclosed by all planes IDC | Interaction Design Collegium 11

  12. Bounding volume hierarchies http://udn.epicgames.com/Two/CollisionTutorial.html IDC | Interaction Design Collegium 12

  13. Outdoor scenery  Outdoor scenery is rarely represented in the same fashion as indoor scenery  The main problem is the scale of outdoor scenery  Outdoor scenery often needs special considerations for optimization  Continuous level of detail IDC | Interaction Design Collegium 13

  14. Heightmap  The most common representation of a terrain  Generally stored in a grayscale 2D texture  Often divided into several smaller objects and rendered as series of triangle strips IDC | Interaction Design Collegium 14

  15. Cracks in the terrain  Beware of cracks in the terrain when rendering with non-uniform tessellation  Different levels of detail  Limited numerical accuracy in 3D card or API  Can be avoided by drawing “skirts”  Multiple techniques for this... IDC | Interaction Design Collegium 15

  16. The ROAM algorithm  The Realtime Optimally Adapting Meshes algorithm was designed as a high- performance, flexible terrain rendering algorithm with continuous LOD  Uses a special data structure called a “triangle bintree” and two priority queues that drive the split and merge operations of patches in the heightmap based on the location of the camera IDC | Interaction Design Collegium 16

  17. Trends in terrain rendering  On modern hardware, algorithms like ROAM use unnecessarily much CPU-power  Fillrate and triangle-drawing capabilities on modern 3D hardware are very good  Nowadays, terrain rendering is mostly done by grouping blocks of terrain patches into vertex buffer objects of just a few detail levels, and culled using only view frustum culling IDC | Interaction Design Collegium 17

  18. Volumetric terrain rendering  Uses voxels (volume pixels)  Can be used with 3D scans  Can be used to render heightmaps  Potentially very high resolution  Used in Comanche: Maximum overkill, 1992  No hardware support IDC | Interaction Design Collegium 18

  19. Skyboxes and skydomes  Used to render the background of 3D scenes  Waste of resources to draw small background objects as meshes  Drawn in the following way  Clear depth and color buffers  Apply camera transformation  Disable the depth buffer test and writes  Draw the skybox or skydome  Enable depth buffer test and writes  Draw the rest of the scene IDC | Interaction Design Collegium 19

  20. Indoor scenery  Data is organized in a very different manner than for outdoor scenery  Very different scales than for outdoor scenery  The existence of enclosing walls and ceilings give excellent opportunities for culling  Thanks to the smaller scale, requirements on detail are much greater than outdoors  Tim Sweeney estimates that we have a factor of 10.000 to 40.000 to go before we are able to render photo-realistic indoor environments IDC | Interaction Design Collegium 20

  21. Uniform grids  The world is split into uniformly sized voxels (in 3D) or squares (in 2D)  Very easy to implement  Relatively efficient with ray-grid- intersection tests, therefore often used for raytracing  http://www.cs.yorku.ca/~amana/ research/grid.pdf  Useful for dynamic data IDC | Interaction Design Collegium 21

  22. Binary space partitioning trees  Have been popular since they were used in DOOM  Was originally designed to solve depth sorting in the late 60's.  Sorts geometry by splitting along planes  Axis-aligned  Also known as KD-tree.  Ordinarily built by alternating the splitting axis.  Polygon-aligned  The most commonly used variant in games IDC | Interaction Design Collegium 22

  23. Quad trees  Two-dimensional representation  Similar to KD-trees, but always split in the middle  Useful for representing outdoor environments which are represented with height- maps IDC | Interaction Design Collegium 23

  24. Octtrees  Like quad trees, but in 3D  Efficient for large three- dimensional spaces  Often have criteria for how many children are needed in a voxel before splitting it as well as how many levels of hierarchy are allowed  Structures where the voxels do not necessarily have the same size are called loose octrees/quadtrees IDC | Interaction Design Collegium 24

  25. Culling  Culling is the act of removing polygons that do not need to be rendered  Can be done by either the CPU or the GPU  Culling on CPU generally saves bandwidth  Culling on GPU (probably) saves CPU-time  Modern hardware stores geometry in vertex buffers, and encourages culling per object instead of per polygon, because that allows reusing of vertex buffer objects IDC | Interaction Design Collegium 25

  26. Software vs. Hardware culling GPU CPU Viewport clipping View frustum culling Z-buffer testing Occlusion culling Backface culling Backface culling IDC | Interaction Design Collegium 26

  27. Backface culling  Ordinarily done in the geometry stage of the pipeline. All data is sent to the GPU, but only visible pixels are rasterized  A polygon is backfacing if n·v < 0  The amount of rendered triangles is normally reduced by 50% IDC | Interaction Design Collegium 27

  28. View frustum culling  Culls objects that are outside of the view frustum  The view frustum is volume enclosed by six planes that is visible from the camera  Very efficient when used on a hierarchy of spatial data structure IDC | Interaction Design Collegium 28

  29. Example: View frustum culling over an octtree  The view frustum is represented by six planes that point to the inside of the enclosed volume  Recurse over the following algorithm for voxels in the octtree, beginning with the voxel that contains the entire tree:  If the voxel is outside of any of the planes, do not draw it  If the voxel is inside all of the planes, draw all of its contents  If the voxel intersects any of the planes, perform this test for all of its children IDC | Interaction Design Collegium 29

  30. Occlusion culling  Performed per pixel by the Z-buffer by the GPU  View frustum culling does not discard objects which are hidden behind other objects  With frustum culling and similar methods, data structures overestimate the size of objects. With occlusion culling, silhouettes which underestimate sizes are used  There are hardware extensions for occlusion culling IDC | Interaction Design Collegium 30

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend