Geometry Batching Using Texture-Arrays
-
Upload
matthias-trapp -
Category
Education
-
view
81 -
download
3
Transcript of Geometry Batching Using Texture-Arrays
![Page 1: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/1.jpg)
Geometry Batching Using Texture-Arrays
Matthias Trapp, Jürgen DöllnerHasso Plattner Institute, University of Potsdam, Germany
![Page 2: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/2.jpg)
INTRODUCTION
![Page 3: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/3.jpg)
Context: Rendering of Complex 3D Virtual Environments
Virtual 3D City Model of Boston: 5,680,317 Vertices + 864 Light Texture Maps
![Page 4: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/4.jpg)
Context: Rendering of Complex 3D Virtual Environments
Colonia 3D: 1,768,374 Vertices + 204 Diffuse Texture Maps
![Page 5: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/5.jpg)
What is Geometry Batching?
Forward Rendering:
GPU is SIMD processor: pipelined operations on primitive streams
High number of draw calls can stall pipeline and yield less efficiency [Wloka, 2003]
Geometry batching = Group rendering primitives to large primitive batches
N0
T0
N1
G0
T1
G1
N2
T2
G2
N3
T3
G3
N0
G0…G3
T0
T1 T2
T3
Original 3D Scene Batched 3D Scene
![Page 6: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/6.jpg)
3D Virtual Environments and Textures
Observations on 3D Virtual Environments:
Usually high geometric complexity
High amount of textures (e.g., facade texture or light maps)
Texture-Atlas Examples:
Light Map Texture Atlas Diffuse Texture Atlas Facade Texture Atlas
![Page 7: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/7.jpg)
Causes of Batch-Size Limitations
Space vs. Quality Trade-off depends on:
Batch size b = number of primitives grouped within a geometry batch
Texture-atlas segmentation algorithm = how many primitive are covered by a texture atlas
Number of primitives limited by maximal texture resolution supported by hardware
Basic Idea of Texture-Array Batching:
1. Bin meshes and textures according to its type, resolution, and format
2. Combine binned texture to respective texture-arrays and store indirection mapping
3. Combine binned 3D meshes/batches to larger geometry batches
Single Textures Texture Atlas Texture Array
![Page 8: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/8.jpg)
Batching using Texture-Arrays
Problem Statement:
1. Binning: How to pre-process 3D scene to create texture-array batches?
2. Storage: How to represent required data structures on GPU?
3. Rendering: How to resolve indirection during rending of texture-array batches?
Texture Atlases 2D Texture Array Final Rendering
![Page 9: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/9.jpg)
APPROACH
![Page 10: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/10.jpg)
Overview of Texture-Array Batching
Preprocessing Stage:
Extract 3D meshes and associated textures (A)
Generate texture-array batches (B)
Rendering Stage:
Upload batches and texture arrays to GPU
Rendering batches and sampling texture-arrays (C)
![Page 11: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/11.jpg)
GPU-based Data Structures and Rendering
![Page 12: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/12.jpg)
GPU-based Data Structures
Texture-array representation (TAi):
OpenGL and Direct3D: 2D texture arrays
Texture-array mapping representation (TAEi):
Constant uniform arrays / uniform buffers exceeds limits
Texture buffer objects to encode texture array entries
Space complexity:
Alternatives for representation of index mapping (TAM):
1. Indices for each texture unit as additional per-vertex attribute
2. Modification of UV texture coordinates by adding a component
![Page 13: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/13.jpg)
Texture-Array Sampling (OpenGL)
![Page 14: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/14.jpg)
RESULTS & DISCUSSION
![Page 15: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/15.jpg)
Performance Test
Test Setups:
Setup 1: NVIDIA 8800 GTS, 640 MB VRAM (Athlon Dual Core 4200+, 2.21 GHz 2 GB RAM)
Setup 2: NVIDIA GTX 280, 1GB VRAM (Intel CoreDuo E 8400, 3GHz, 3.25 GB RAM)
Results:
![Page 16: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/16.jpg)
Conclusions
Limitations:
Same as texture atlases: wrapping of texture coordinates (e.g., repeat or mirror)
Future Work:
Combine approach with sparse textures (OpenGL: GL_ARB_sparse_texture)
Summary:
Pre-processing algorithm for textures and texture arrays
Counterbalance hardware limitations texture resolutions for batching
Easy to implement (rapid prototyping and static scenes)
![Page 17: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/17.jpg)
Questions & Comments ?
Contact:
Matthias Trapp / [email protected]
Jürgen Döllner / [email protected]
Publications: www.4dndvis.de/publikationen.html
This work was funded by the Federal Ministry of Education and Research (BMBF), Germany within the InnoProfile Transfer research group "4DnD-Vis".
![Page 18: Geometry Batching Using Texture-Arrays](https://reader034.fdocuments.in/reader034/viewer/2022042607/55a981f71a28ab6f458b4687/html5/thumbnails/18.jpg)
Geometry Batching Using Texture-Arrays
Matthias Trapp, Jürgen DöllnerHasso Plattner Institute, University of Potsdam, Germany