+ All Categories
Home > Education > Geometry Batching Using Texture-Arrays

Geometry Batching Using Texture-Arrays

Date post: 18-Jul-2015
Category:
Upload: matthias-trapp
View: 82 times
Download: 3 times
Share this document with a friend
Popular Tags:
18
Geometry Batching Using Texture-Arrays Matthias Trapp , Jürgen Döllner Hasso Plattner Institute, University of Potsdam, Germany
Transcript
Page 1: Geometry Batching Using Texture-Arrays

Geometry Batching Using Texture-Arrays

Matthias Trapp, Jürgen DöllnerHasso Plattner Institute, University of Potsdam, Germany

Page 2: Geometry Batching Using Texture-Arrays

INTRODUCTION

Page 3: Geometry Batching Using Texture-Arrays

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

Context: Rendering of Complex 3D Virtual Environments

Colonia 3D: 1,768,374 Vertices + 204 Diffuse Texture Maps

Page 5: Geometry Batching Using Texture-Arrays

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

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

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

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

APPROACH

Page 10: Geometry Batching Using Texture-Arrays

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

GPU-based Data Structures and Rendering

Page 12: Geometry Batching Using Texture-Arrays

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

Texture-Array Sampling (OpenGL)

Page 14: Geometry Batching Using Texture-Arrays

RESULTS & DISCUSSION

Page 15: Geometry Batching Using Texture-Arrays

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

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

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

Geometry Batching Using Texture-Arrays

Matthias Trapp, Jürgen DöllnerHasso Plattner Institute, University of Potsdam, Germany


Recommended