Post on 23-Dec-2015
R. Berndt, Web3D 2005, 30.03.05 1Computer Graphics, TU Braunschweig
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
R. Berndt, Web3D 2005, 30.03.05 2Computer Graphics, TU Braunschweig
Why another 3D format?
Apparent structural similarity Can not be expressed by
primitive-based representations IFS, NURBS, ...
Procedural models deserve aprocedural representation
R. Berndt, Web3D 2005, 30.03.05 3Computer Graphics, TU Braunschweig
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
R. Berndt, Web3D 2005, 30.03.05 4Computer Graphics, TU Braunschweig
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
R. Berndt, Web3D 2005, 30.03.05 5Computer Graphics, TU Braunschweig
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
Reminder: Stack-based Language
2 3 mul 4 add2 3 mul 4 add 22 3 mul 4 add 32
2 3 mul 4 add 62 3 mul 4 add 46
2 3 mul 4 add 10
Program
Stack
R. Berndt, Web3D 2005, 30.03.05 6Computer Graphics, TU Braunschweig
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
R. Berndt, Web3D 2005, 30.03.05 7Computer Graphics, TU Braunschweig
Euler operatorsi. Each Euler operator maintains
topologic consistency
ii. 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
R. Berndt, Web3D 2005, 30.03.05 8Computer Graphics, TU Braunschweig
Combined B-Reps
R. Berndt, Web3D 2005, 30.03.05 9Computer Graphics, TU Braunschweig
R. Berndt, Web3D 2005, 30.03.05 10Computer Graphics, TU Braunschweig
Layered Software Architecture
Catmull/Clark surfaces
BRep meshes
Euler operators
GML
Exp
licit
dat
a
Abs
trac
tion
GPU
R. Berndt, Web3D 2005, 30.03.05 11Computer Graphics, TU Braunschweig
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
GML 3D Basics
/nrml (1,0,0) def Variable name (0,0,1) !nrml Register :name
R. Berndt, Web3D 2005, 30.03.05 12Computer Graphics, TU Braunschweig
Circle Segment to Polygon
[ (1,0,0) start (0,0,0) mid (1,1,0)] end (0,0,1) normal20 1 circleseg
(1,0,0)
(1,1,0)
(0,0,0)
R. Berndt, Web3D 2005, 30.03.05 13Computer Graphics, TU Braunschweig
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
R. Berndt, Web3D 2005, 30.03.05 14Computer Graphics, TU Braunschweig
The Pointed Arch
(-1,0,0) !ml(1,0,0) !mr1.5 !rad(0.5,0,0) !pr(-0.5,0,0) !pl
:ml :rad:mr :rad (0,0,1) intersect_circles!pt pop
ml mr
pt
prpl
R. Berndt, Web3D 2005, 30.03.05 15Computer Graphics, TU Braunschweig
The Pointed Arch
[ :pr :ml :pt ] (0,0,1) 5 1 circleseg[ :pt :mr :pl ] (0,0,1) 5 1 circlesegarrayappend
[ (-0.5,-1,0) dup (0.5,-1,0) dup ] arrayappend
ml mr
pt
prpl Operator chaining:output input
Stack flexible
R. Berndt, Web3D 2005, 30.03.05 16Computer Graphics, TU Braunschweig
Conversion to a mesh
Mesh modeling toolswork on halfedges
Position in a mesh:(vertex,edge,face)
Mesh halfedgesare built-in GML type
5 poly2doubleface(0,0.4,5) extrude
R. Berndt, Web3D 2005, 30.03.05 17Computer Graphics, TU Braunschweig
Power of Procedural Modeling
R. Berndt, Web3D 2005, 30.03.05 18Computer Graphics, TU Braunschweig
GML over the internet GML models are
typically lean Cathedral:
20 KB zipped
Browser plugins ActiveX Mozilla Plugin
JavaScriptinterface is lean
load call
R. Berndt, Web3D 2005, 30.03.05 19Computer Graphics, TU Braunschweig
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
R. Berndt, Web3D 2005, 30.03.05 20Computer Graphics, TU Braunschweig
Thank You for Your Attention!
Any Questions or Remarks?
www.generative-modeling.org