jeff terrace ewen cheslack postava philip levis and
play

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


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

  2. What is a Virtual World? • Three-dimensional, online environment • Users can communicate, shop, socialize, collaborate, and learn. 2 ¡

  3. Virtual World Types Static Dynamic • Fixed art • New art can be inserted • Artist-generated • User-generated environment environment • Predictable • Unpredictable • Restricted user ability • Open, free ability 3 ¡

  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 ¡

  5. Sirikata • Platform for seamless, scalable, and federated metaverses 5 ¡

  6. 3D Content • Mesh Representation – Vertex coordinates – Normal vectors – Polygon indexes – Textures – Texture coordinates 6 ¡

  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 ¡

  8. Gathering Content • Summer 2011 • 15 students at Stanford and Princeton • Uploaded 3D models to website Texture RAM (bytes) 10 8 10 7 10 6 10 5 10 4 10 3 10 2 10 1 0 0 10 1 10 2 10 3 10 4 10 5 10 6 Number of Triangles 8 ¡

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

  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 ¡

  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 ¡

  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 ¡

  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 ¡

  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 ¡

  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 ¡

  16. • Flat, disc-like regions • Compact 16 ¡

  17. Heuristic Examples 17 ¡

  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 ¡

  19. Allocating Texture Space • Original technique [Sander ‘01] – L 2 (T) - root-mean-square stretch – L ∞ (T) - maximum stretch • L 2 (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 L 2 ! • A chart with high L 2 (T) can allocate too much space, leaving little room 19 ¡

  20. Allocating Texture Space • L 2 c - chart’s texture stretch • A c - chart’s surface area in 3D • A’ c - chart’s area in the original texture • Σ L 2 , Σ A , Σ A’ – sum across all charts 20 ¡

  21. 21 ¡

  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 ¡

  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 ¡

  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 ¡

  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 ¡

  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 ¡

  27. 128x128 334KB 512x512 923KB 2048x2048 4.3MB 50% 100% 0% 27 ¡

  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 ¡

  29. Render Efficiency Frames Per Second Frames Per Second Frames Per Second Frames Per Second 700 700 700 700 600 600 600 600 500 500 500 500 400 400 400 400 300 300 300 300 Base Progressive Full Progressive Full Progressive 200 200 200 200 Original Flattened Original Flattened Original Flattened 100 100 100 100 Original Original Original Original 0 0 0 0 0 . 0 0 . 0 0 . 0 0 . 0 0 . 2 0 . 2 0 . 2 0 . 2 0 . 4 0 . 4 0 . 4 0 . 4 0 . 6 0 . 6 0 . 6 0 . 6 0 . 8 0 . 8 0 . 8 0 . 8 1 . 0 1 . 0 1 . 0 1 . 0 Mesh Mesh Mesh Mesh 29 ¡

  30. File Size – Base Mesh 10 4 Change in KB 10 3 10 2 10 1 0 − 10 1 − 10 2 − 10 3 − 10 4 0 . 0 0 . 2 0 . 4 0 . 6 0 . 8 1 . 0 Mesh 30 ¡

  31. Perceptual Error 12 Mean 10 Delta E Median 8 6 4 2 0 0 10 20 30 40 50 60 70 80 90 100 Progressive Stream • Delta E < 1 not noticeable by average human • Delta E of 3-6 are commonly-used tolerances for commercial printing 31 ¡

  32. Conditioning Contributions • Unsupervised • Apportioning texture space fairly • Efficient progressive encoding • A complete, robust conversion framework 32 ¡

  33. � Questions? open3dhub.com sirikata.com @jterrace jterrace@cs.princeton.edu 33 ¡

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