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

B1-D

Jan Cajthaml

cajthjan@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 30.0 67.38461

const n = 5

Facade -->
	case LOD <= 0:
		texture("/Praha/images/B1D.png")
		alignScopeToGeometry(zUp, 0, world.lowest)
		setupProjection(0, scope.xy, '1.0000, '1.0000)
		projectUV(0)
	else:
		texture("/Praha/images/B1D.png")
		alignScopeToGeometry(zUp, 0, world.lowest)
		split(y, noAdjust) { ~15.11: Facade__1(0) | 9.01: Facade__1(1) | ~19.55: Facade__1(2) | ~15.43: Facade__1(3) | 8.29: Facade__1(4) }


FacadeTrigger(i) -->
	case LOD <= 0:
		texture("/Praha/images/B1D.png")
		alignScopeToGeometry(zUp, 0, world.lowest)
		setupProjection(0, scope.xy, '1.0000, '1.0000)
		projectUV(0)
	else:
		texture("/Praha/images/B1D.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.03: Facade__1_1_1 | 4.89: Facade__1_1_2 | ~20.09: Facade__1_1_3 }

Facade__1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '5.9696, '4.4605)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '5.9696, '4.4605)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_1_2 -->
	split(y, noAdjust) { ~7.93: Facade__1_1_2_1 | 7.18: Facade__1_1_2_2 }

Facade__1_1_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '6.1375, '8.4999, '-1.0281, '0.0000)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '6.1375, '8.4999, '-1.0281, '0.0000)
		t(0, 0, -0.6) 
		projectUV(0) 

Facade__1_1_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '6.1375, '9.3860, '-1.0281, '-1.1043)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '6.1375, '9.3860, '-1.0281, '-1.1043)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_1_3 -->
	split(y, noAdjust) { 1.05: Facade__1_1_3_1 | ~5.96: Facade__1_1_3_2 | ~8.10: Facade__1_1_3_3 }

Facade__1_1_3_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '1.4935, '63.9356, '-0.4935, '0.0000)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '1.4935, '63.9356, '-0.4935, '0.0000)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_1_3_2 -->
	split(x, noAdjust) { ~9.62: Facade__1_1_3_2_1 | 5.50: Facade__1_1_3_2_2 | 4.96: Facade__1_1_3_2_3 }

Facade__1_1_3_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '3.1175, '11.3114, '-1.0302, '-0.1769)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '3.1175, '11.3114, '-1.0302, '-0.1769)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_1_3_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '5.4555, '11.3114, '-3.5528, '-0.1769)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '5.4555, '11.3114, '-3.5528, '-0.1769)
		t(0, 0, -0.6) 
		s('1, '1, 0.3) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_1_3_2_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '6.0431, '11.3114, '-5.0431, '-0.1769)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '6.0431, '11.3114, '-5.0431, '-0.1769)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_1_3_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '1.4935, '8.3235, '-0.4935, '-0.8660)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '1.4935, '8.3235, '-0.4935, '-0.8660)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

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

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

Facade__1_2_1_1 -->
	split(x, noAdjust) { 1.97: Facade__1_2_1_1_1 | ~4.12: Facade__1_2_1_1_2 | 1.41: Facade__1_2_1_1_3 }

Facade__1_2_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '15.2250, '7.4770, '0.0000, '-1.6763)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '15.2250, '7.4770, '0.0000, '-1.6763)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_2_1_1_2 -->
	split(y, noAdjust) { 1.83: Facade__1_2_1_1_2_1 | ~5.19: Facade__1_2_1_1_2_2 | 1.99: Facade__1_2_1_1_2_3 }

Facade__1_2_1_1_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.2741, '36.7620, '-0.4778, '-8.2416)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.2741, '36.7620, '-0.4778, '-8.2416)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_2_1_1_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.2741, '12.9748, '-0.4778, '-3.2618)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.2741, '12.9748, '-0.4778, '-3.2618)
		t(0, 0, -0.6) 
		s('1, '1, 0.20000002) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_2_1_1_2_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.2741, '33.9342, '-0.4778, '-11.1461)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.2741, '33.9342, '-0.4778, '-11.1461)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_2_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '21.3474, '7.4770, '-4.3369, '-1.6763)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '21.3474, '7.4770, '-4.3369, '-1.6763)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

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

Facade__1_3_1 -->
	split(y, noAdjust) { ~9.93: Facade__1_3_1_1 | 9.62: Facade__1_3_1_2 }

Facade__1_3_1_1 -->
	split(y, noAdjust) { ~9.93: Facade__1_3_1_1_1 }*

Facade__1_3_1_1_1 -->
	split(x, noAdjust) { ~7.50: Facade__1_3_1_1_1_1 }*

Facade__1_3_1_1_1_1 -->
	split(x, noAdjust) { 1.97: Facade__1_3_1_1_1_1_1 | ~4.28: Facade__1_3_1_1_1_1_2 | 1.25: Facade__1_3_1_1_1_1_3 }

Facade__1_3_1_1_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '15.2250, '6.7868, '0.0000, '-2.4292)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '15.2250, '6.7868, '0.0000, '-2.4292)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_1_1_1_2 -->
	split(y, noAdjust) { 1.99: Facade__1_3_1_1_1_1_2_1 | ~4.89: Facade__1_3_1_1_1_1_2_2 | 3.05: Facade__1_3_1_1_1_1_2_3 }

Facade__1_3_1_1_1_1_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.0143, '33.9342, '-0.4607, '-12.1461)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.0143, '33.9342, '-0.4607, '-12.1461)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_1_1_1_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.0143, '13.7858, '-0.4607, '-5.3406)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.0143, '13.7858, '-0.4607, '-5.3406)
		t(0, 0, -0.6) 
		s('1, '1, 0.20000002) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_1_1_1_2_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.0143, '22.0572, '-0.4607, '-10.1450)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.0143, '22.0572, '-0.4607, '-10.1450)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_1_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '23.9508, '6.7868, '-4.9877, '-2.4292)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '23.9508, '6.7868, '-4.9877, '-2.4292)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_2 -->
	split(y, noAdjust) { ~9.62: Facade__1_3_1_2_1 }*

Facade__1_3_1_2_1 -->
	split(x, noAdjust) { ~7.50: Facade__1_3_1_2_1_1 }*

Facade__1_3_1_2_1_1 -->
	split(x, noAdjust) { 1.97: Facade__1_3_1_2_1_1_1 | ~3.97: Facade__1_3_1_2_1_1_2 | 1.56: Facade__1_3_1_2_1_1_3 }

Facade__1_3_1_2_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '15.2250, '7.0023, '0.0000, '-3.5381)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '15.2250, '7.0023, '0.0000, '-3.5381)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_2_1_1_2 -->
	split(y, noAdjust) { 1.53: Facade__1_3_1_2_1_1_2_1 | ~5.80: Facade__1_3_1_2_1_1_2_2 | 2.29: Facade__1_3_1_2_1_1_2_3 }

Facade__1_3_1_2_1_1_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.5538, '44.1144, '-0.4961, '-22.2899)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.5538, '44.1144, '-0.4961, '-22.2899)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_2_1_1_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.5538, '11.6091, '-0.4961, '-6.1289)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.5538, '11.6091, '-0.4961, '-6.1289)
		t(0, 0, -0.6) 
		s('1, '1, 0.20000002) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_2_1_1_2_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.5538, '29.4096, '-0.4961, '-18.0600)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.5538, '29.4096, '-0.4961, '-18.0600)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_3_1_2_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '19.2546, '7.0023, '-3.8137, '-3.5381)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '19.2546, '7.0023, '-3.8137, '-3.5381)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

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

Facade__1_4_1 -->
	split(y, noAdjust) { ~7.94: Facade__1_4_1_1 | 7.48: Facade__1_4_1_2 }

Facade__1_4_1_1 -->
	split(y, noAdjust) { ~7.94: Facade__1_4_1_1_1 }*

Facade__1_4_1_1_1 -->
	split(x, noAdjust) { ~7.50: Facade__1_4_1_1_1_1 }*

Facade__1_4_1_1_1_1 -->
	split(x, noAdjust) { 2.12: Facade__1_4_1_1_1_1_1 | ~4.43: Facade__1_4_1_1_1_1_2 | 0.95: Facade__1_4_1_1_1_1_3 }

Facade__1_4_1_1_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '14.1297, '8.4835, '0.0000, '-5.4981)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '14.1297, '8.4835, '0.0000, '-5.4981)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_1_1_1_2 -->
	split(y, noAdjust) { 1.83: Facade__1_4_1_1_1_1_2_1 | ~4.28: Facade__1_4_1_1_1_1_2_2 | 1.83: Facade__1_4_1_1_1_1_2_3 }

Facade__1_4_1_1_1_1_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '6.7724, '36.7621, '-0.4793, '-23.8250)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '6.7724, '36.7621, '-0.4793, '-23.8250)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_1_1_1_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '6.7724, '15.7551, '-0.4793, '-10.6393)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '6.7724, '15.7551, '-0.4793, '-10.6393)
		t(0, 0, -0.6) 
		s('1, '1, 0.15000004) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_1_1_1_2_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '6.7724, '36.7621, '-0.4793, '-27.1584)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '6.7724, '36.7621, '-0.4793, '-27.1584)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_1_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '31.6767, '8.4835, '-6.9192, '-5.4981)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '31.6767, '8.4835, '-6.9192, '-5.4981)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_2 -->
	split(y, noAdjust) { ~7.48: Facade__1_4_1_2_1 }*

Facade__1_4_1_2_1 -->
	split(x, noAdjust) { ~7.50: Facade__1_4_1_2_1_1 }*

Facade__1_4_1_2_1_1 -->
	split(x, noAdjust) { 1.97: Facade__1_4_1_2_1_1_1 | ~4.43: Facade__1_4_1_2_1_1_2 | 1.10: Facade__1_4_1_2_1_1_3 }

Facade__1_4_1_2_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '15.2250, '9.0029, '0.0000, '-6.8959)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '15.2250, '9.0029, '0.0000, '-6.8959)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_2_1_1_2 -->
	split(y, noAdjust) { 1.07: Facade__1_4_1_2_1_1_2_1 | ~4.43: Facade__1_4_1_2_1_1_2_2 | 1.99: Facade__1_4_1_2_1_1_2_3 }

Facade__1_4_1_2_1_1_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '6.7724, '63.0206, '-0.4448, '-48.2714)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '6.7724, '63.0206, '-0.4448, '-48.2714)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_2_1_1_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '6.7724, '15.2119, '-0.4448, '-11.8931)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '6.7724, '15.2119, '-0.4448, '-11.8931)
		t(0, 0, -0.6) 
		s('1, '1, 0.20000002) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_2_1_1_2_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '6.7724, '33.9340, '-0.4448, '-28.7614)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '6.7724, '33.9340, '-0.4448, '-28.7614)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_4_1_2_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '27.2773, '9.0029, '-5.8193, '-6.8959)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '27.2773, '9.0029, '-5.8193, '-6.8959)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

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

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

Facade__1_5_1_1 -->
	split(x, noAdjust) { 1.97: Facade__1_5_1_1_1 | ~4.12: Facade__1_5_1_1_2 | 1.41: Facade__1_5_1_1_3 }

Facade__1_5_1_1_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '15.2250, '8.1325, '0.0000, '-7.1325)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '15.2250, '8.1325, '0.0000, '-7.1325)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_5_1_1_2 -->
	split(y, noAdjust) { 1.53: Facade__1_5_1_1_2_1 | ~4.74: Facade__1_5_1_1_2_2 | 2.02: Facade__1_5_1_1_2_3 }

Facade__1_5_1_1_2_1 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.2741, '44.1144, '-0.4778, '-38.6899)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.2741, '44.1144, '-0.4778, '-38.6899)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_5_1_1_2_2 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.2741, '14.2305, '-0.4778, '-12.8032)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.2741, '14.2305, '-0.4778, '-12.8032)
		t(0, 0, -0.6) 
		s('1, '1, 0.20000002) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_5_1_1_2_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '7.2741, '33.3082, '-0.4778, '-32.3082)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '7.2741, '33.3082, '-0.4778, '-32.3082)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 

Facade__1_5_1_1_3 -->
	case LOD <= 1:
		setupProjection(0, scope.xy, '21.3475, '8.1325, '-4.3369, '-7.1325)
		projectUV(0) 
	else:
		setupProjection(0, scope.xy, '21.3475, '8.1325, '-4.3369, '-7.1325)
		t(0, 0, -0.6) 
		s('1, '1, 0.6) 
		i("builtin:cube") 
		projectUV(0) 



zpět na začátek