1 / 20

Generative 3D Models A Key to More Information within Less Bandwidth at Higher Quality

Generative 3D Models A Key to More Information within Less Bandwidth at Higher Quality. René Berndt , Dieter W. Fellner , Sven Havemann Computer Graphics, TU Braunschweig, Germany. Why another 3D format?. Apparent structural similarity

aletta
Download Presentation

Generative 3D Models A Key to More Information within Less Bandwidth at Higher Quality

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Generative 3D ModelsA Key to More Information within Less Bandwidth at Higher Quality René Berndt, Dieter W. Fellner, Sven Havemann Computer Graphics, TU Braunschweig, Germany

  2. Why another 3D format? • Apparent structural similarity • Can not be expressed by primitive-based representations • IFS, NURBS, ... • Procedural models deserve aprocedural representation

  3. Procedural Low-Level Format • Procedural model representation must be programming language • Shape modeling becomes programming • Code generation problem: Models only through manual coding? • emacs not ideal for creating 3d objects Idea: have a look at what works well in 2D

  4. The GML Language • Similar to Adobe’s PostScript • Printer executes program, bitmap is side effect • The “invisible” programming language • Postscript Language Reference (“Redbook”): Chapter 3 “Language”, pp. 24-56 • But GML is for 3D, not for 2D • Purpose: “Smallest common denominator” for the description of procedural 3D models – and data • Just as triangles are for the description of surfaces • Outstanding feature: Simplicity facilitates code generation

  5. 23 mul 4 add 23 mul 4 add 23 mul 4 add 23 mul 4 add 23 mul4 add 23 mul4add 2 3 2 6 4 6 10 Reminder: Stack-based Language • Literals are pushed on the stack • Operators pop items from the stack, process them, and push the result back on the stack • Principle of HP pocket calculators: No brackets • Arrow notation: 2 3 mul 4 add 10 Stack Program

  6. Underlying Shape Representation • Paradigm shift: From Objects to Operations • Problem:Shape generating functions for meshes? • Problem:Model re-generated at interactive rates • 20 models/sec  no preprocessing possible • Problem:Triangle meshes too many degrees of freedom • NURBS also: regular grid limitation

  7. Euler operators • Each Euler operator maintains topologic consistency • Every 2-manifold mesh of any genus can be built • Closed and sufficient set of shape construction operators • Mesh access exclusively through halfedges • Euler operators are invertible: mandatory for undo/redo • 20 models per second

  8. Combined B-Reps

  9. Layered Software Architecture GML Euler operators Explicit data Abstraction BRep meshes Catmull/Clark surfaces GPU

  10. GML 3D Basics • Name simple objects to make them parameters • Create combined objects • Line [ p0 p1 ] • Polygon [ p0 p1 p2 p3 p4 ] • Circle mid rad nrml • Circle segment [ a m b ] nrml /nrml (1,0,0) def Variable name (0,0,1) !nrml Register :name

  11. Circle Segment to Polygon [ (1,0,0) start (0,0,0) mid (1,1,0)] end (0,0,1) normal 20 1 circleseg (1,1,0) (0,0,0) (1,0,0)

  12. Circle Intersection (0,0,0) (0,0,1) 1.0 12 circle (1,0,0) (0,0,1) 1.2 12 circle (just to show crude circles) (0,0,0) 1.0 (1,0,0) 1.2 (0,0,1) intersect_circles

  13. The Pointed Arch (-1,0,0) !ml (1,0,0) !mr 1.5 !rad (0.5,0,0) !pr (-0.5,0,0) !pl :ml :rad :mr :rad (0,0,1) intersect_circles !pt pop pt mr ml pl pr

  14. The Pointed Arch [ :pr :ml :pt ] (0,0,1) 5 1 circleseg [ :pt :mr :pl ] (0,0,1) 5 1 circleseg arrayappend [ (-0.5,-1,0) dup (0.5,-1,0) dup ] arrayappend pt mr ml pl pr • Operator chaining:output  input • Stack flexible

  15. Conversion to a mesh 5 poly2doubleface (0,0.4,5) extrude • Mesh modeling toolswork on halfedges • Position in a mesh:(vertex,edge,face) • Mesh halfedgesare built-in GML type

  16. Power of Procedural Modeling

  17. GML over the internet • GML models are typically lean • Cathedral:20 KB zipped • Browser plugins • ActiveX • Mozilla Plugin • JavaScriptinterface is lean • load • call

  18. GML Projects • ActiveGML: Internet delivery of life models • Kölner Dom project • file://lowangen/Web3D/DemoPage/testpage.htm • Inverse Problem: Shape recognition • PROBADO project (DFG Leistungszentrum) • file://lowangen/Web3D/Probado/ProbadoSearch.htm • Other shape representations: world brushes… • EPOCH NoE – cultural heritage • GML + OpenSG

  19. Thank You for Your Attention! Any Questions or Remarks? www.generative-modeling.org

More Related