generaciò procedural d'edificis
Post on 08-Apr-2017
50 Views
Preview:
TRANSCRIPT
Creacio procedural d’edificisDefensa
Roger Hernando
19 de juny de 2013
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
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
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
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
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
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Definicio objectiu
Planificacio
Roger Hernando Creacio 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
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
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
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
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
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
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
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Sistemes implementats
Parser i GeneradorVisualitzador
Roger Hernando Creacio 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
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
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
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Visualitzador
Visualitzador
Roger Hernando Creacio procedural d’edificis
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Petrona
Torres Petronas
Roger Hernando Creacio 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
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Petrona
Torres Petronas
Roger Hernando Creacio 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
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Petrona
Torres Petronas
Roger Hernando Creacio 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
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Petrona
Torres Petronas
Roger Hernando Creacio 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
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Petrona
Torres Petronas
Roger Hernando Creacio 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
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Petrona
Torres Petronas
Roger Hernando Creacio procedural d’edificis
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Temple
Temple
Roger Hernando Creacio procedural d’edificis
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Castle
Castle
Roger Hernando Creacio procedural d’edificis
Generacio Procedural Objectiu Gramatica Implementacio Exemples
Castle
Fi
Preguntes?
Roger Hernando Creacio procedural d’edificis
top related