Proceduálně generované moduly sourceforge html5-valid css3-valid

B1-C

Veronika Černohorská

cernover@fel.cvut.cz
7:30—9:00 D. Sedláček

Obrázek  zpět na začátek ↑

Vlevo je pohled z Instant playeru, uprostřed použitá textura a vpravo obrázek z hotové scény.


Popis řešení  zpět na začátek ↑

Fasáda domu byla vygenerována pomocí nástroje Facade Wizard v City Enginu, výsledná fasáda má vytlačená okna i dveře. Střecha byla náhodně vygenerována z ručně napsaného skriptu.


Technická specifikace  zpět na začátek ↑

Počet trojúhelníků0
Nejvyšší úroveň detailu0
Nižší úroveň detailu0
Snímková rychlost v Instant Playeru0
Odkaz na zdrojový kód gramatiky0

version "2012.1"



attr LOD = 2
# LOD 0 generates the original texture
# LOD 1 generates flat splits
# LOD 2 generates splits with depth as defined in Facade Wizard


#! SIZE 20.0 39.58932

const n = 5

Facade -->
	case LOD <= 0:
		texture("/Praha/images/B8D (2).png")
		alignScopeToGeometry(zUp, 0, world.lowest)
		setupProjection(0, scope.xy, '1.0000, '1.0000)
		projectUV(0)
	else:
		texture("/Praha/images/B8D (2).png")
		alignScopeToGeometry(zUp, 0, world.lowest)
		split(y, noAdjust) { ~11.38: Facade__1(0) | ~8.23: Facade__1(1) | 6.15: Facade__1(2) | 5.30: Facade__1(3) | ~8.53: Facade__1(4) }


FacadeTrigger(i) -->
	case LOD <= 0:
		texture("/Praha/images/B8D (2).png")
		alignScopeToGeometry(zUp, 0, world.lowest)
		setupProjection(0, scope.xy, '1.0000, '1.0000)
		projectUV(0)
	else:
		texture("/Praha/images/B8D (2).png")
		alignScopeToGeometry(zUp, 0, world.lowest)
		Facade__1(i)


Facade__1(i) -->
	case i == 0: Facade__1_1
	case i == 1: Facade__1_2
	case i == 2: Facade__1_3
	case i == 3: Facade__1_4
	case i == 4: Facade__1_5
	else: Facade__1_1

Facade__1_1 -->
	split(x, noAdjust) { ~5.00: Facade__1_1_1 }*

Facade__1_1_1 -->
	split(x, noAdjust) { 1.54: Facade__1_1_1_1 | 1.46: Facade__1_1_1_2 | ~2.00: Facade__1_1_1_3 }

Facade__1_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '12.9555, '3.4798)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '12.9555, '3.4798)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_1_1_2 -->
	split(y, noAdjust) { ~5.92: Facade__1_1_1_2_1 | ~4.00: Facade__1_1_1_2_2 | 1.46: Facade__1_1_1_2_3 }

Facade__1_1_1_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '13.6928, '6.6888, '-1.0569, '0.0000)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '13.6928, '6.6888, '-1.0569, '0.0000)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_1_1_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '13.6928, '9.9035, '-1.0569, '-1.4806)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '13.6928, '9.9035, '-1.0569, '-1.4806)
		t(0, 0, -0.35) 
		projectUV(0) 

Facade__1_1_1_2_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '13.6928, '27.1044, '-1.0569, '-6.7890)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '13.6928, '27.1044, '-1.0569, '-6.7890)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '10.0219, '3.4798, '-1.5055, '0.0000)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '10.0219, '3.4798, '-1.5055, '0.0000)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_2 -->
	split(y, noAdjust) { ~8.23: Facade__1_2_1 }*

Facade__1_2_1 -->
	split(x, noAdjust) { ~5.00: Facade__1_2_1_1 }*

Facade__1_2_1_1 -->
	split(x, noAdjust) { 1.62: Facade__1_2_1_1_1 | ~2.00: Facade__1_2_1_1_2 | 1.38: Facade__1_2_1_1_3 }

Facade__1_2_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '12.3409, '4.8129, '0.0000, '-1.3831)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '12.3409, '4.8129, '0.0000, '-1.3831)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_2_1_1_2 -->
	split(y, noAdjust) { 1.61: Facade__1_2_1_1_2_1 | ~4.92: Facade__1_2_1_1_2_2 | 1.69: Facade__1_2_1_1_2_3 }

Facade__1_2_1_1_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '10.0063, '24.5230, '-0.8108, '-7.0472)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '10.0063, '24.5230, '-0.8108, '-7.0472)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_2_1_1_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '10.0063, '8.0466, '-0.8108, '-2.6405)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '10.0063, '8.0466, '-0.8108, '-2.6405)
		t(0, 0, -0.35) 
		projectUV(0) 

Facade__1_2_1_1_2_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '10.0063, '23.4083, '-0.8108, '-10.5905)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '10.0063, '23.4083, '-0.8108, '-10.5905)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_2_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '14.4862, '4.8129, '-2.6216, '-1.3831)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '14.4862, '4.8129, '-2.6216, '-1.3831)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3 -->
	split(y, noAdjust) { ~6.15: Facade__1_3_1 }*

Facade__1_3_1 -->
	split(x, noAdjust) { ~5.00: Facade__1_3_1_1 }*

Facade__1_3_1_1 -->
	split(y, noAdjust) { ~2.46: Facade__1_3_1_1_1 | 1.31: Facade__1_3_1_1_2 | ~2.38: Facade__1_3_1_1_3 }

Facade__1_3_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '4.0000, '16.0932, '0.0000, '-7.9685)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '4.0000, '16.0932, '0.0000, '-7.9685)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_1_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '4.0000, '30.2931, '0.0000, '-16.8819)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '4.0000, '30.2931, '0.0000, '-16.8819)
		t(0, 0, -0.35) 
		s('1, '1, 0.85) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '4.0000, '16.6124, '0.0000, '-9.8062)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '4.0000, '16.6124, '0.0000, '-9.8062)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4 -->
	split(y, noAdjust) { ~5.30: Facade__1_4_1 }*

Facade__1_4_1 -->
	split(x, noAdjust) { ~5.00: Facade__1_4_1_1 }*

Facade__1_4_1_1 -->
	split(y, noAdjust) { ~1.77: Facade__1_4_1_1_1 | 1.23: Facade__1_4_1_1_2 | ~2.31: Facade__1_4_1_1_3 }

Facade__1_4_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '4.0000, '22.3906, '0.0000, '-14.5648)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '4.0000, '22.3906, '0.0000, '-14.5648)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_1_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '4.0000, '32.1865, '0.0000, '-22.3745)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '4.0000, '32.1865, '0.0000, '-22.3745)
		t(0, 0, -0.35) 
		s('1, '1, 0.85) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '4.0000, '17.1661, '0.0000, '-12.4664)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '4.0000, '17.1661, '0.0000, '-12.4664)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_5 -->
	split(y, noAdjust) { ~8.53: Facade__1_5_1 }*

Facade__1_5_1 -->
	split(x, noAdjust) { ~5.00: Facade__1_5_1_1 }*

Facade__1_5_1_1 -->
	split(y, noAdjust) { 2.15: Facade__1_5_1_1_1 | 1.00: Facade__1_5_1_1_2 | ~5.38: Facade__1_5_1_1_3 }

Facade__1_5_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '4.0000, '18.3923, '0.0000, '-14.4283)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '4.0000, '18.3923, '0.0000, '-14.4283)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_5_1_1_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '4.0000, '39.6139, '0.0000, '-33.2300)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '4.0000, '39.6139, '0.0000, '-33.2300)
		t(0, 0, -0.35) 
		s('1, '1, 0.85) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_5_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '4.0000, '7.3578, '0.0000, '-6.3578)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '4.0000, '7.3578, '0.0000, '-6.3578)
		t(0, 0, -0.35) 
		s('1, '1, 0.35) 
		i("builtin:cube") 
		projectUV(0) 


						

zpět na začátek