1 Street Generation for City Modeling Xavier Décoret, François Sillion iMAGIS GRAVIR/IMAG - INRIA
2 A Computer Graphics point of view A Computer Graphics point of view –Graphic artists –Game developers –Researchers A work in 2 parts A work in 2 parts –A framework –An algorithm Foreword
3 Motivations City Modeling is a growing field of interest City Modeling is a growing field of interest –Game and Leisure »Virtual environments are widely used »Need for larger environments »Cities are natural and appealing large environments –Analysis and Simulation »Pedestrians or traffic flow »Wave transportation
4 Motivations Creating the virtual model is a tedious task Creating the virtual model is a tedious task –Realistic model »Model it by hand: long and costly »Reconstruct it automatically: not working yet –Semi-realistic model »Procedural modelling »Map is exact, geometry is approximative
5 Motivations Creating the virtual model is a tedious task Creating the virtual model is a tedious task –Realistic model »Model it by hand: long and costly »Reconstruct it automatically: not working yet –Semi-realistic model »Procedural modelling »Map is exact, geometry is approximative No existing tool
6 Overview of the tool Retrieve the 2D footprints of buildings Retrieve the 2D footprints of buildings –Aerial photographs –Existing 2D models Procedurally generate buildings Procedurally generate buildings –Grammar, library of shapes –Style information provided by a designer (GIS) Generate streets Generate streets –Retrieve the street network –Generate geometry
7 Overview of the tool Retrieve the 2D footprints of buildings Retrieve the 2D footprints of buildings –Aerial photographs –Existing 2D models Procedurally generate buildings Procedurally generate buildings –Grammar, library of shapes –Style information provided by a designer (GIS) Generate streets Generate streets –Retrieve the street network –Generate geometry Our contribution
8 Input & Output Input Output Polygonal footprints +
9 Principle We use a median axis (skeleton) We use a median axis (skeleton) Seems natural for roads Seems natural for roads –Goes in between 2 buildings –Goes approximately at equal distance
10 Use of a median axis Street graphPolygonal footprints
11 Robustness Issues (1) Input sensitivity Input sensitivity Ideal caseNoise effectExpected result
12 Robustness Issues (2) Artefacts Artefacts Unwanted branches requiring post-processing
13 Our approach A topological phase A topological phase –Partition the map into »Streets »Crossings
14 Our approach A topological phase A topological phase –Partition the map into »Streets »Crossings
15 Our approach A topological phase A topological phase –Partition the map into »Streets »Crossings
16 Our approach A topological phase A topological phase –Partition the map into »Streets »Crossings A geometric phase A geometric phase –The graph is shaped to a correct position –Optimisation with constraints
17 Our approach A topological phase A topological phase –Partition the map into »Streets »Crossings A geometric phase A geometric phase –The graph is shaped to a correct position –Optimisation with constraints
18 Topological Phase Sample the footprints with extra vertices Sample the footprints with extra vertices
19 Topological Phase Sample the footprints with extra vertices Sample the footprints with extra vertices
20 Topological Phase Sample the footprints with extra vertices Sample the footprints with extra vertices Delaunay triangulate the samples Delaunay triangulate the samples
21 Topological Phase Sample the footprints with extra vertices Sample the footprints with extra vertices Delaunay triangulate the samples Delaunay triangulate the samples Ignore edges joining samples of a same building Ignore edges joining samples of a same building
22 Topological Phase Sample the footprints with extra vertices Sample the footprints with extra vertices Delaunay triangulate the samples Delaunay triangulate the samples Ignore edges joining samples of a same building Ignore edges joining samples of a same building
23 Topological Phase Sample the footprints with extra vertices Sample the footprints with extra vertices Delaunay triangulate the samples Delaunay triangulate the samples Ignore edges joining samples of a same building Ignore edges joining samples of a same building Take the dual of edges (Voronoï diagram) Take the dual of edges (Voronoï diagram)
24 Topological Phase Sample the footprints with extra vertices Sample the footprints with extra vertices Delaunay triangulate the samples Delaunay triangulate the samples Ignore edges joining samples of a same building Ignore edges joining samples of a same building Take the dual of edges (Voronoï diagram) Take the dual of edges (Voronoï diagram) Construct a graph from the edges Construct a graph from the edges Crossings Streets
25 Our approach A topological phase A topological phase –Partition the map into »Streets »Crossings A geometric phase A geometric phase –The graph is shaped to a correct position –Optimisation with constraints 9
26 Geometric Phase Place sample median points Place sample median points
27 Geometric Phase Place sample median points Place sample median points
28 Geometric Phase Place sample median points Place sample median points
29 Geometric Phase Place sample median points Place sample median points
30 Geometric Phase Place sample median points Place sample median points
31 Geometric Phase Place sample median points Place sample median points Compute minimum width Compute minimum width
32 Geometric Phase Place sample median points Place sample median points Compute minimum width Compute minimum width Greedily place a valid polyline in between Greedily place a valid polyline in between
33 Geometric Phase Place sample median points Place sample median points Compute minimum width Compute minimum width Greedily place a valid polyline in between Greedily place a valid polyline in between
34 Place sample median points Place sample median points Compute minimum width Compute minimum width Greedily place a valid polyline in between Greedily place a valid polyline in between Split the polyline in Split the polyline in –Segments –Curves Geometric Phase Segments Curve
35 Robustness A topological phase A topological phase –Partition the map into »Streets »Crossings A geometric phase A geometric phase –The graph is shaped to a correct position –Optimisation with constraints - Based on distance - Robust to footprints’shape - Solves input sensitivity - Based on optimisation - Robust to footprints’shape - Solves artefacts
36 Results
37 Street Generation Generate streets Generate streets –Retrieve the street network »Topology »Simple primitives –Generate geometry »Match buildings boundaries »Connect correctly at crossings
38 Workflow Generate streets Generate streets –Retrieve the street network »Topology »Simple primitives –Generate geometry »Match buildings boundaries »Connect correctly at crossings
39 Generating geometry Use library of parametric models to build segments and curves Triangulate the remaining border
40 Parametric model
41 Results
42 Conclusion & Future Works We can generate geometry from a 2D map of buildings We can generate geometry from a 2D map of buildings –Work in 2D1/2 Write more parametric modules Write more parametric modules High level features extractions High level features extractions –Avenues –Squares Generate coherent trafic signs Generate coherent trafic signs