Jeff Terrace , Ewen Cheslack-Postava, Philip Levis and Michael J. - - PowerPoint PPT Presentation

jeff terrace ewen cheslack postava philip levis and
SMART_READER_LITE
LIVE PREVIEW

Jeff Terrace , Ewen Cheslack-Postava, Philip Levis and Michael J. - - PowerPoint PPT Presentation

Jeff Terrace , Ewen Cheslack-Postava, Philip Levis and Michael J. Freedman 1 What is a Virtual World? Three-dimensional, online environment Users can communicate, shop, socialize, collaborate, and learn. 2 Virtual World Types


slide-1
SLIDE 1

Jeff Terrace, Ewen Cheslack-Postava, Philip Levis and Michael J. Freedman

1 ¡

slide-2
SLIDE 2

What is a Virtual World?

  • Three-dimensional, online environment
  • Users can communicate, shop, socialize,

collaborate, and learn.

2 ¡

slide-3
SLIDE 3

Virtual World Types

Static

  • Fixed art
  • Artist-generated

environment

  • Predictable
  • Restricted user ability

Dynamic

  • New art can be inserted
  • User-generated

environment

  • Unpredictable
  • Open, free ability

3 ¡

slide-4
SLIDE 4

Virtual World Examples

  • World of Warcraft

– Online game – 10 million players

  • Second Life

– Virtual world – Explore, socialize, trade

  • EvE Online, Habbo Hotel, etc.

4 ¡

slide-5
SLIDE 5

Sirikata

  • Platform for seamless, scalable, and

federated metaverses

5 ¡

slide-6
SLIDE 6

3D Content

  • Mesh Representation

– Vertex coordinates – Normal vectors – Polygon indexes – Textures – Texture coordinates

6 ¡

slide-7
SLIDE 7

Importing Content

  • GPU limits for interactive frame rates

– triangles (millions) – texture RAM (256MB – 2GB) – batches / draw calls (thousands)

  • Static worlds

– Artist works closely with developers – Pre-processed

  • Dynamic worlds

– Arbitrary, user-generated content

7 ¡

slide-8
SLIDE 8

Gathering Content

  • Summer 2011
  • 15 students at Stanford and Princeton
  • Uploaded 3D models to website

8 ¡

101 102 103 104 105 106 Number of Triangles 101 102 103 104 105 106 107 108 Texture RAM (bytes)

slide-9
SLIDE 9

Draw Call Distribution

9 ¡

1 2 3 4 5 6 7 8 9 10 11-15 16-20 21-25 26+ Number of Draw Calls .05 .10 .15 .20 Frequency

slide-10
SLIDE 10

Possible Solutions

  • Enforce limits on triangles, textures, and

draw calls

– Decreases usability – Reduces available content

  • We can do better!

– Automatically condition the content into efficient format

10 ¡

slide-11
SLIDE 11

Conditioning Goals

  • 1. Reduce Draw Calls

– 1 per object

  • 2. Reducing Texture Space

– To fit more textures into RAM

  • 3. Simplify Mesh

– Complex meshes can be drawn at lower resolution

  • 4. Progressive Transmission

– Display low-resolution first, streaming more detail – Great for low-bandwidth links or distant observers

11 ¡

slide-12
SLIDE 12

Conditioning

  • Mesh Simplification

– Well studied area

  • Mesh Optimization [Hoppe ‘93]
  • Surface simplification using quadric error metrics [Garland ‘97]
  • Appearance preserving simplification [Cohen ’98]

– Problems with progressive models

  • Retexturing + simplification

– Existing methods

  • Texture mapping progressive meshes [Sander ‘01]

– Supervised algorithm, small testing set

12 ¡

slide-13
SLIDE 13

Conditioning Pipeline

  • 1. Cleaning and normalizing
  • 2. Chart creation

– contribution: unsupervised

  • 3. Fair allocation of texture space to charts

– novel technique

  • 4. Mesh simplification
  • 5. Progressive, streamable encoding

– contribution: efficient format

13 ¡

slide-14
SLIDE 14

Cleaning and Normalizing

  • All polygons are converted to triangles
  • Missing vertex normals are generated
  • Extraneous data is deleted
  • Complex scene hierarchies and instanced

geometry is flattened to a single mesh

  • Vertex data is scaled to a uniform size

14 ¡

slide-15
SLIDE 15

Creating Charts

  • Retexturing

– Creates new, single texture from model

  • Each triangle could be placed in texture

– Not great for simplification

  • Instead, partition mesh into flat regions
  • Starts with a chart for every triangle
  • Priority queue of chart merges

– Ordered by error term incorporating compactness and planarity

15 ¡

slide-16
SLIDE 16
  • Flat, disc-like regions
  • Compact

16 ¡

slide-17
SLIDE 17

Heuristic Examples

17 ¡

slide-18
SLIDE 18

Allocating Texture Space

  • Each chart is parameterized from 3D

space to 2D texture space

  • Each chart is given a size in 2D space

18 ¡

slide-19
SLIDE 19

Allocating Texture Space

  • Original technique [Sander ‘01]

– L2(T) - root-mean-square stretch – L∞(T) - maximum stretch

  • L2(T) is used because

– “unfortunately there are a few triangles for which the maximum stretch remains high”

  • With our larger set of models, so is L2!
  • A chart with high L2(T) can allocate too

much space, leaving little room

19 ¡

slide-20
SLIDE 20

Allocating Texture Space

  • L2

c - chart’s texture stretch

  • Ac - chart’s surface area in 3D
  • A’c - chart’s area in the original texture
  • ΣL2, ΣA, ΣA’ – sum across all charts

20 ¡

slide-21
SLIDE 21

21 ¡

slide-22
SLIDE 22

Mesh Simplification

  • We use technique based on [Garland ‘97]

and [Sander ’01] using quadric error and texture stretch

  • See paper for unsupervised stopping

heuristic

22 ¡

slide-23
SLIDE 23

Ideal Progressive Encoding

  • 1. Simplified base mesh can be

downloaded and displayed without downloading the rest

  • 2. Vertex data can be streamed, allowing a

client to continuously increase mesh detail

  • 3. The mesh’s texture can be progressively

streamed, allowing a client to increase texture detail

23 ¡

slide-24
SLIDE 24

File Format

  • Existing formats

– OBJ, STL, PLY, FBX (60 listed on Wikipedia)

  • COLLADA

– Open standards-based XML format (2006) – Widely supported: SketchUp, Blender, 3DS Max, Maya, Autodesk, Google Earth – pycollada maintainer

  • But there are no existing usable

progressive formats

24 ¡

slide-25
SLIDE 25

Base Mesh & Refinements

  • Base mesh encoded as COLLADA

– backwards compatible, unmodified clients

  • Progressive vertex data is a list of

refinements: vertex additions, triangle additions, index updates

25 ¡

slide-26
SLIDE 26

Progressive Textures

  • No suitable progressive image formats

– JPEG 2000, gif

  • Memory buffer requires O(full resolution) size

– Microsoft DDS format

  • fixed-point only (like png)
  • not well supported
  • Full resolution is resized to multiple LODs

– 1x1, 2x2, 4x4, … 512x512, 1024x1024, … – Also called mipmaps, each encoded as JPEG – Concatenated together into TAR file

  • Achieves good compression
  • Allows client to index into file, e.g. HTTP Range request

26 ¡

slide-27
SLIDE 27

128x128 512x512 2048x2048 0% 50% 100%

334KB 923KB 4.3MB

27 ¡

slide-28
SLIDE 28

Evaluation

  • Render efficiency

– How much does batching help?

  • File Size

– How does conditioning affect file size?

  • Perceptual Error

– How much does conditioning change how models look?

28 ¡

slide-29
SLIDE 29

Render Efficiency

29 ¡

0.0 0.2 0.4 0.6 0.8 1.0 Mesh 100 200 300 400 500 600 700 Frames Per Second

Original

0.0 0.2 0.4 0.6 0.8 1.0 Mesh 100 200 300 400 500 600 700 Frames Per Second

Original Flattened Original

0.0 0.2 0.4 0.6 0.8 1.0 Mesh 100 200 300 400 500 600 700 Frames Per Second

Full Progressive Original Flattened Original

0.0 0.2 0.4 0.6 0.8 1.0 Mesh 100 200 300 400 500 600 700 Frames Per Second

Base Progressive Full Progressive Original Flattened Original

slide-30
SLIDE 30

File Size – Base Mesh

30 ¡

0.0 0.2 0.4 0.6 0.8 1.0 Mesh −104 −103 −102 −101 101 102 103 104 Change in KB

slide-31
SLIDE 31

Perceptual Error

31 ¡

  • Delta E < 1 not noticeable by average human
  • Delta E of 3-6 are commonly-used tolerances

for commercial printing

10 20 30 40 50 60 70 80 90 100 Progressive Stream 2 4 6 8 10 12 Delta E

Mean Median

slide-32
SLIDE 32

Conditioning Contributions

  • Unsupervised
  • Apportioning texture space fairly
  • Efficient progressive encoding
  • A complete, robust conversion framework

32 ¡

slide-33
SLIDE 33

Questions?

  • pen3dhub.com

sirikata.com

  • @jterrace

jterrace@cs.princeton.edu

33 ¡