Final Presentation of Thesis
Automatic Generation
Of 3D Environments
INF/SCR-06-53
Thesis student: Matei Lunca (Master Game And Media Technology)
Thesis professor: Dr. R. van Oostrum, GIVE
Thesis supervisor: Drs. A. Kamphuis, GIVE
• Presentation Outline
– Why automatic generation of 3D is great
– Some salient previous work
– Demonstration video of software tool
– Parameters
– Algorithm (world-scale generation)
– Results
– The Variant-Linker Template (object-scale generation)
• Modelling 3D
– great volume of operations = work = errors
– software should do as much work as possible
• Generator
– contains formulas that create geometry based on
many random numbers and some variables
– variables are user-defined parameters
• “minimum distance between each pair of buildings = 9”
Don’t create,
generate
Don’t create,
generate
• What is needed for automatic generation of
3D that has not yet been explored?
– parameter-driven world-scale generation
– object-scale generation that uses both the
advantages of human users (overview, “feel” for
architecture” and the advantage of computers:
speed of calculation
Crucial factor
• performance improving through testing
– virtual agent prototyping
• obstacles, dead-ends, other agents, interaction,
flocking, goals, motion planning, path finding
• emergency/congestion simulation
• eliminating environment borders
• theoretically infinite level of detail
– adding detail to existing 3D
Applications
• urban zone GIS applications
– forecasting patters of urban growth
• minimizing of storage; just-in-time creation
– Xbox 360 procedural synthesis
• rich backgrounds for animate first, model later
• aiding in brainstorming sessions
– visualisations show ideas faster than mathematics
Applications
• eliminating need for domain knowledge of 3D
– enabling other disciplines to visualise 3D
environments that depict their ideas
– knowledge and its representation becomes more
important than technical 3D skill
• eliminating map knowledge from gaming
• design-by-sketch
• more time for non-modelling project tasks
Applications
• Various Techniques
– generate a city network based on images and
rules with different road patterns
– models built based on aerial photo/laser survey
together with maps (photogrammetry); skeletons
for buildings and roofs can be reconstructed
– "smart buildings” replicate floor plans, each floor
being an instance of a floor prototype: walls, roofs
Tried techniques
• Various Techniques
– Worms 3D' seed modules: chunks of land, features and
objects which are joined together randomly
– Hellgate London's template sets of buildings and corridors
• Established techniques: fractal terrain
• Generation of urban zones - conflicting needs!
– realistic (existing cities come into their form through
different processes: habitation, growth, destruction)
– mimicking this process is more of an art, but requires
mathematical precision in programming
Tried techniques
Demonstration video
• Some drawbacks inherent to 3D modelling
– lack of proper (world) scale/proportions
– architecture appears unrealistic
• clean, repetitive, never enough detail, never enough
computer power...
– lack of a weathered, "used universe"
Drawbacks
• Some are specific to generation
– lack of control over what is being created
– users might lack interest/confidence because less
human effort/ thinking involved
– laziness on the part of modellers and its effect on
users; the intellectual process suffers
– establishing parameter values is trial-and-error
– too much data!
Drawbacks
• Study of techniques, urban zones determined
choice of parameters and generator functions
Parameters
• building_grids
– the width of the overall matrix within for deciding
zone types to build (business, urban, suburb, empty)
• building_grids_2
– the width of the matrix of specific decisions for
individual buildings within units of the overall matrix
• builds
– the number of times the building generator runs
Parameters
• chance_streets_grid
– the percentage chance for a raster pattern of
streets
• chance_streets_star
– the percentage chance for a street pattern laid
out from a central point outward to the terrain
edges
• chance_streets_random
– the percentage chance for streets that connect
more random points
Parameters
• chance_grid[type] (4x)
– the percentage chance that a matrix cell of overall
building decisions will be of a type: business,
urban, suburb or empty
• grid[grid][building] (20x)
– the percentage chance for buildings of a certain
type (4x) will be built when building city blocks of
a certain type (4x) + the chance that a city blocks
of a certain type will be rotated
Parameters
Building types
1. load input parameters
2. calculate values related to parameters, such as
matrix dimensions, borders, buffers and arrays
3. start returning textual output
4. generate terrain: grow the desired number of
terrain features
5. create the water
Algorithm
6. generate streets according to the given chances for
street network patterns
7. start the generation of buildings by dividing the given
central part of the terrain into a grid
8. divide each segment of this overall grid into more
refined grids
9. decide for each overall grid segment what type of
urban zone it will contain
10. loop through the overall grid, then within that loop
through the local grid, creating building models
according to the chances and desired percentages for
types given as parameters
Algorithm
11.add trees
12.remove the water and street obstacles
13.store environment as VRML or XML
– the first is faster and more storage efficient, the
latter is both machine and human readable
11.take a screenshot
12.report completion and visualise
Algorithm
Algorithm
Algorithm
• Characteristics
– each environment is unlike others
– comparable parameters = comparable output
– many types of zones are created
• areas that cannot be navigated (water)
• varying terrain
• areas with easy "tree" obstacles
• areas with moderate "building" obstacles
• areas with "building” maze: dead ends, narrow
passages, alleys, streets, trees, visual restrictions
Results
Results
• Variant: describes minimum and maximum volumetric values
• Linker: glues Variants
Variant-Linker
Variant-Linker
• Advantages
– modularity, and therefore reusability
– validity guarantees through the use of already "proven"
templates, not unlike extensions in programming
– high degree of usability and enabling modelling
– simplicity
– scalability in the way of embedded information
• Disadvantages
– dependency on some human input
– lack of visual attractive output?
– back to speed of normal modelling
Variant-Linker

WorldGenerator

  • 1.
    Final Presentation ofThesis Automatic Generation Of 3D Environments INF/SCR-06-53 Thesis student: Matei Lunca (Master Game And Media Technology) Thesis professor: Dr. R. van Oostrum, GIVE Thesis supervisor: Drs. A. Kamphuis, GIVE
  • 2.
    • Presentation Outline –Why automatic generation of 3D is great – Some salient previous work – Demonstration video of software tool – Parameters – Algorithm (world-scale generation) – Results – The Variant-Linker Template (object-scale generation)
  • 3.
    • Modelling 3D –great volume of operations = work = errors – software should do as much work as possible • Generator – contains formulas that create geometry based on many random numbers and some variables – variables are user-defined parameters • “minimum distance between each pair of buildings = 9” Don’t create, generate
  • 4.
  • 5.
    • What isneeded for automatic generation of 3D that has not yet been explored? – parameter-driven world-scale generation – object-scale generation that uses both the advantages of human users (overview, “feel” for architecture” and the advantage of computers: speed of calculation Crucial factor
  • 6.
    • performance improvingthrough testing – virtual agent prototyping • obstacles, dead-ends, other agents, interaction, flocking, goals, motion planning, path finding • emergency/congestion simulation • eliminating environment borders • theoretically infinite level of detail – adding detail to existing 3D Applications
  • 7.
    • urban zoneGIS applications – forecasting patters of urban growth • minimizing of storage; just-in-time creation – Xbox 360 procedural synthesis • rich backgrounds for animate first, model later • aiding in brainstorming sessions – visualisations show ideas faster than mathematics Applications
  • 8.
    • eliminating needfor domain knowledge of 3D – enabling other disciplines to visualise 3D environments that depict their ideas – knowledge and its representation becomes more important than technical 3D skill • eliminating map knowledge from gaming • design-by-sketch • more time for non-modelling project tasks Applications
  • 9.
    • Various Techniques –generate a city network based on images and rules with different road patterns – models built based on aerial photo/laser survey together with maps (photogrammetry); skeletons for buildings and roofs can be reconstructed – "smart buildings” replicate floor plans, each floor being an instance of a floor prototype: walls, roofs Tried techniques
  • 10.
    • Various Techniques –Worms 3D' seed modules: chunks of land, features and objects which are joined together randomly – Hellgate London's template sets of buildings and corridors • Established techniques: fractal terrain • Generation of urban zones - conflicting needs! – realistic (existing cities come into their form through different processes: habitation, growth, destruction) – mimicking this process is more of an art, but requires mathematical precision in programming Tried techniques
  • 11.
  • 12.
    • Some drawbacksinherent to 3D modelling – lack of proper (world) scale/proportions – architecture appears unrealistic • clean, repetitive, never enough detail, never enough computer power... – lack of a weathered, "used universe" Drawbacks
  • 13.
    • Some arespecific to generation – lack of control over what is being created – users might lack interest/confidence because less human effort/ thinking involved – laziness on the part of modellers and its effect on users; the intellectual process suffers – establishing parameter values is trial-and-error – too much data! Drawbacks
  • 14.
    • Study oftechniques, urban zones determined choice of parameters and generator functions Parameters
  • 15.
    • building_grids – thewidth of the overall matrix within for deciding zone types to build (business, urban, suburb, empty) • building_grids_2 – the width of the matrix of specific decisions for individual buildings within units of the overall matrix • builds – the number of times the building generator runs Parameters
  • 16.
    • chance_streets_grid – thepercentage chance for a raster pattern of streets • chance_streets_star – the percentage chance for a street pattern laid out from a central point outward to the terrain edges • chance_streets_random – the percentage chance for streets that connect more random points Parameters
  • 17.
    • chance_grid[type] (4x) –the percentage chance that a matrix cell of overall building decisions will be of a type: business, urban, suburb or empty • grid[grid][building] (20x) – the percentage chance for buildings of a certain type (4x) will be built when building city blocks of a certain type (4x) + the chance that a city blocks of a certain type will be rotated Parameters
  • 18.
  • 19.
    1. load inputparameters 2. calculate values related to parameters, such as matrix dimensions, borders, buffers and arrays 3. start returning textual output 4. generate terrain: grow the desired number of terrain features 5. create the water Algorithm
  • 20.
    6. generate streetsaccording to the given chances for street network patterns 7. start the generation of buildings by dividing the given central part of the terrain into a grid 8. divide each segment of this overall grid into more refined grids 9. decide for each overall grid segment what type of urban zone it will contain 10. loop through the overall grid, then within that loop through the local grid, creating building models according to the chances and desired percentages for types given as parameters Algorithm
  • 21.
    11.add trees 12.remove thewater and street obstacles 13.store environment as VRML or XML – the first is faster and more storage efficient, the latter is both machine and human readable 11.take a screenshot 12.report completion and visualise Algorithm
  • 22.
  • 23.
  • 24.
    • Characteristics – eachenvironment is unlike others – comparable parameters = comparable output – many types of zones are created • areas that cannot be navigated (water) • varying terrain • areas with easy "tree" obstacles • areas with moderate "building" obstacles • areas with "building” maze: dead ends, narrow passages, alleys, streets, trees, visual restrictions Results
  • 25.
  • 26.
    • Variant: describesminimum and maximum volumetric values • Linker: glues Variants Variant-Linker
  • 27.
  • 28.
    • Advantages – modularity,and therefore reusability – validity guarantees through the use of already "proven" templates, not unlike extensions in programming – high degree of usability and enabling modelling – simplicity – scalability in the way of embedded information • Disadvantages – dependency on some human input – lack of visual attractive output? – back to speed of normal modelling Variant-Linker