Generaciò procedural d'edificis

33
Creaci´ o procedural d’edificis Defensa Roger Hernando 19 de juny de 2013

Transcript of Generaciò procedural d'edificis

Page 1: Generaciò procedural d'edificis

Creacio procedural d’edificisDefensa

Roger Hernando

19 de juny de 2013

Page 2: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Index1 Generacio Procedural

DefinicioAvantatgesGrans entorns

2 ObjectiuDefinicio objectiu

3 GramaticaLlenguatge

4 ImplementacioParser i GeneradorParserGeneradorVisualitzador

5 ExemplesPetronaTempleCastle

Roger Hernando Creacio procedural d’edificis

Page 3: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Definicio

Definicio

Son algorismes que es basen en:Generacio de contingut automatitzada.Abstraccio de caracterıstiques del que es vol generar.Algorismes configurables(parametres).

Roger Hernando Creacio procedural d’edificis

Page 4: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Avantatges

Avantatges

Gran flexibilitat.Proces de creacio de contingut mes agil.Ajut als dissenyadors.Reduccio dels costos de desenvolupament.Reduccio dels costos mediambientals

Roger Hernando Creacio procedural d’edificis

Page 5: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Grans entorns

Creacio de grans entorns

Gran quantitat de models.Cohesio entre models.Generacio d’entorns urbans:

EdificisCarrers

Roger Hernando Creacio procedural d’edificis

Page 6: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Definicio objectiu

Objectiu

Sistema procedural de generacio d’edificis basat en l’us degramatiques.

Parser.GeneradorVisualitzador.

Roger Hernando Creacio procedural d’edificis

Page 7: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Definicio objectiu

Planificacio

Roger Hernando Creacio procedural d’edificis

Page 8: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Llenguatge

El Llenguatge(1)

Especifica gramatiques CGA(Wonka & Muller)Considera formes com a variables.Regles de produccio de diferents tipus.Prioritats entre regles.Regles amb probabilitat.

Roger Hernando Creacio procedural d’edificis

Page 9: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Llenguatge

El Llenguatge(2)

/*Definicio de variables*/VARS:type 1//Definicio de prioritatPRIORITY 1:1 lot --> Subdiv(Z, z_dim*rand(0.3, 0.5), 1r) {fac| side}2 side

--> Subdiv(X, x_dim*rand(0.2, 0.6), 1r){side|}:0.5--> Subdiv(X, 1r, x_dim*rand(0.2, 0.6)){|side}:0.5

3 side--> S(x_dim, y_dim, z_dim*rand(0.4, 1)) fac : 0.5--> S(x_dim, y_dim*rand(0.2, 0.9), z_dim*rand(0.4, 1))

fac : 0.3--> : 0.2

4 fac : (type == 1) --> I("cube")5 fac : (type == 2) --> I("cylinder")

Roger Hernando Creacio procedural d’edificis

Page 10: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Llenguatge

Regles

idregla Spredecessor : Caplic → Ssuccesor : p

Classificacio segons Ssuccesor .Regles de substitucio.Regles de separacioRegles de repeticio.Regles de separacio de components.

Roger Hernando Creacio procedural d’edificis

Page 11: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Llenguatge

Regles de substitucio

1 A --> [T(0,0,6)S(8,10,18)I("cube")] B2 B --> T(6,0,0)S(7,13,18)I("cube") C3 C --> T(0,0,16)S(8,15,8)I("cylinder")

Roger Hernando Creacio procedural d’edificis

Page 12: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Llenguatge

Regles de separacio

1 A --> Subdiv(X, x_dim*rand(0.2, 0.6), 1r, 2r){B||C}2 B --> I("cube")3 C --> I("pyramid.ply")

Roger Hernando Creacio procedural d’edificis

Page 13: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Llenguatge

Regles de repeticio

1 A --> Repeat(XYZ, 3, 3, 3){B}2 B --> I("monkey.ply")

Roger Hernando Creacio procedural d’edificis

Page 14: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Llenguatge

Regles de separacio de components

1 A --> Comp(edges){B}2 B : (x_dim > 0)--> S(x_dim, 1, 1) I("cube")3 B : (y_dim > 0)--> S(1, y_dim, 1) I("cube")4 B : (z_dim > 0)--> S(1, 1, z_dim) I("cube")

Roger Hernando Creacio procedural d’edificis

Page 15: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Sistemes implementats

Parser i GeneradorVisualitzador

Roger Hernando Creacio procedural d’edificis

Page 16: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Parser i Generador

Sistema ParseGen

Implementat com una aplicacio Java independent.

$ ./bin/ParseGen -helpusage: ParseGen [options] file-ast <file> write the AST-dotpdf dump the AST in dot and pdf format-gen <x_dim y_dim z_dim> generate and define initial size-help print this message-model <file> write generated model to a file

Roger Hernando Creacio procedural d’edificis

Page 17: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Parser

Parser

PROGRAM

GLOB_VARS LIST_PREFERENCES

LIST_RULES

1 2 3

A EXPR SUCCESSOR_LIST

SUCCESSOR

SCOPE_RULE PROB

SCOPE_RULE B

TRANSLATE SCALE MESH

0 0 6 8 10 18 "cube"

B EXPR SUCCESSOR_LIST

SUCCESSOR

SCOPE_RULE PROB

TRANSLATE SCALE MESH C

6 0 0 7 13 18 "cube"

C EXPR SUCCESSOR_LIST

SUCCESSOR

SCOPE_RULE PROB

TRANSLATE SCALE MESH

0 0 16 8 15 8 "cylinder"

Roger Hernando Creacio procedural d’edificis

Page 18: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Generador

Generador

A → conjunt de sımbols actius.1 Seleccio de la regla mes prioritaria.2 Aplicacio de la regla.3 Si queden sımbols no-terminals

repetir el pas 1.

Roger Hernando Creacio procedural d’edificis

Page 19: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Visualitzador

Visualitzador

Roger Hernando Creacio procedural d’edificis

Page 20: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

Roger Hernando Creacio procedural d’edificis

Page 21: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

PRIORITY 1:1 A --> Subdiv(Y, 15r, 6r, 4r, 3r, 2r, 1r, 2r)

{floor|floor2|floor3|floor4|floor5|floor6|peak}2 floor2 --> S(x_dim*0.8, y_dim, z_dim*0.8)T(x_dim*0.1, 0, z_dim*0.1) floor3 floor3 --> S(x_dim*0.6, y_dim, z_dim*0.6)T(x_dim*0.2, 0, z_dim*0.2) floor4 floor4 --> S(x_dim*0.4, y_dim, z_dim*0.4)T(x_dim*0.3, 0, z_dim*0.3) floor5 floor5 --> S(x_dim*0.2, y_dim, z_dim*0.2)T(x_dim*0.4, 0, z_dim*0.4) floor6 floor6 --> S(x_dim*0.1, y_dim, z_dim*0.1)T(x_dim*0.45, 0, z_dim*0.45) floor7 peak --> S(x_dim*0.05, y_dim, z_dim*0.05)

T(x_dim*(1-0.05)/2, 0, z_dim*(1-0.05)/2) I("cube")8 floor --> I("cube") rot_body Comp(sidefaces){face}9 rot_body --> T(-x_dim/4, 0, z_dim/2) Ry(45) I("cube")10 face --> Subdiv(Z, 1r, 1r, 1r, 1r, 1r){|cols||cols|}11 cols --> T(-z_dim/2,0,0) S(z_dim, y_dim, z_dim) I("cylinder")

Roger Hernando Creacio procedural d’edificis

Page 22: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

Roger Hernando Creacio procedural d’edificis

Page 23: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

PRIORITY 1:1 A --> Subdiv(Y, 15r, 6r, 4r, 3r, 2r, 1r, 2r)

{floor|floor2|floor3|floor4|floor5|floor6|peak}

Roger Hernando Creacio procedural d’edificis

Page 24: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

Roger Hernando Creacio procedural d’edificis

Page 25: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

2 floor2 --> S(x_dim*0.8, y_dim, z_dim*0.8)T(x_dim*0.1, 0, z_dim*0.1) floor3 floor3 --> S(x_dim*0.6, y_dim, z_dim*0.6)T(x_dim*0.2, 0, z_dim*0.2) floor4 floor4 --> S(x_dim*0.4, y_dim, z_dim*0.4)T(x_dim*0.3, 0, z_dim*0.3) floor5 floor5 --> S(x_dim*0.2, y_dim, z_dim*0.2)T(x_dim*0.4, 0, z_dim*0.4) floor6 floor6 --> S(x_dim*0.1, y_dim, z_dim*0.1)T(x_dim*0.45, 0, z_dim*0.45) floor7 peak --> S(x_dim*0.05, y_dim, z_dim*0.05)

T(x_dim*(1-0.05)/2, 0, z_dim*(1-0.05)/2) I("cube")

Roger Hernando Creacio procedural d’edificis

Page 26: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

Roger Hernando Creacio procedural d’edificis

Page 27: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

8 floor --> I("cube") rot_body Comp(sidefaces){face}9 rot_body --> T(-x_dim/4, 0, z_dim/2) Ry(45) I("cube")10 face --> Subdiv(Z, 1r, 1r, 1r, 1r, 1r){|cols||cols|}

Roger Hernando Creacio procedural d’edificis

Page 28: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

Roger Hernando Creacio procedural d’edificis

Page 29: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

11 cols --> T(-z_dim/2,0,0) S(z_dim, y_dim, z_dim) I("cylinder")

Roger Hernando Creacio procedural d’edificis

Page 30: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Petrona

Torres Petronas

Roger Hernando Creacio procedural d’edificis

Page 31: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Temple

Temple

Roger Hernando Creacio procedural d’edificis

Page 32: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Castle

Castle

Roger Hernando Creacio procedural d’edificis

Page 33: Generaciò procedural d'edificis

Generacio Procedural Objectiu Gramatica Implementacio Exemples

Castle

Fi

Preguntes?

Roger Hernando Creacio procedural d’edificis