Island Source

include/architecture.txt

simple_column_end { 
	LathedObject  name = "subobject0" order = 3 knots = "{ 0.000000, 0.000000, 0.000000, 1.000000, 2.000000, 3.000000, 4.000000, 5.000000, 6.000000, 7.000000, 8.000000, 9.000000, 10.000000, 10.000000, 10.000000}" control_points = "{ (0.003, 1.000), (0.500, 1.000), (1.000, 1.000), (1.000, 0.664), (0.634, 0.664), (0.914, 0.664), (0.914, 0.332), (0.586, 0.332), (0.845, 0.332), (0.848, 0.000), (0.503, 0.000), (0.003, 0.000) }" weights = "{ 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000 }" accuracy = (50%, 10%);
}

simple_column { 
	LathedObject  position = (0, 0, 0) size = (0.070, 1.000, 0.070)
		name = "vertical"
		order = 3 knots = "{ 0, 0, 0, 1, 1, 1}"
		control_points = "{ (0.997, 0.996), (0.997, 0.509), (0.997, 0.030) }"
		weights = "{ 1.000, 1.000, 1.000 }" accuracy = (100%, 50%);
	simple_column_end  position = (0.000000, 0.950000, 0.000000) size = (0.100000, 0.050000, 0.100000) name = "top";
	simple_column_end  position = (0.000000, 0.050000, 0.000000) rotation = (180.000000, 0.000000, 0.000000) size = (0.100000, 0.050000, 0.100000) name = "bottom";
}

stairs_three { 
	Rectangle  position = (0.000000, 0.333000, 0.000000) rotation = (270.000000, 0.000000, 0.000000) size = (0.333000, 1.000000, 1.000000) name = "subobject0";
	Rectangle  position = (0.333000, 0.660000, 0.000000) rotation = (270.000000, 0.000000, 0.000000) size = (0.333000, 1.000000, 1.000000) name = "subobject1";
	Rectangle  position = (0.666600, 1.000000, 0.000000) rotation = (270.000000, 0.000000, 0.000000) size = (0.333000, 1.000000, 1.000000) name = "subobject2";
	Rectangle  position = (0.000000, 0.000000, 0.000000) rotation = (0.000000, 90.000000, 0.000000) size = (1.000000, 0.333000, 1.000000) name = "subobject3";
	Rectangle  position = (0.333000, 0.333300, 0.000000) rotation = (0.000000, 90.000000, 0.000000) size = (1.000000, 0.333000, 1.000000) name = "subobject4";
	Rectangle  position = (0.667000, 0.666600, 0.000000) rotation = (0.000000, 90.000000, 0.000000) size = (1.000000, 0.333000, 1.000000) name = "subobject5";
	Rectangle  position = (1.000000, 0.000000, 0.000000) rotation = (0.000000, 90.000000, 0.000000) name = "subobject6";
	Rectangle  size = (1.000000, 0.333000, 1.000000) name = "subobject7";
	Rectangle  position = (0.333000, 0.333300, 0.000000) size = (0.667000, 0.333000, 1.000000) name = "subobject8";
	Rectangle  position = (0.667000, 0.667000, 0.000000) size = (0.333000, 0.333000, 1.000000) name = "subobject9";
	Rectangle  position = (0.000000, 0.000000, -1.000000) rotation = (0.000000, 0.000000, 0.000000) size = (1.000000, 0.333000, 1.000000) name = "subobject10";
	Rectangle  position = (0.333000, 0.333000, 0.000000) size = (0.667000, 0.333000, 1.000000) name = "subobject11";
	Rectangle  position = (0.666600, 0.667000, -1.000000) size = (0.333300, 0.333000, 1.000000) name = "subobject12";
}
gothic_bridge_post { 
	LathedObject  name = "subobject0" order = 3 knots = "{ 0.000000, 0.000000, 0.000000, 1.000000, 2.000000, 3.000000, 4.000000, 5.000000, 6.000000, 7.000000, 8.000000, 9.000000, 10.000000, 11.000000, 11.000000, 11.000000}" control_points = "{ (0.003, 1.000), (0.045, 0.871), (0.221, 0.829), (0.221, 0.829), (0.221, 0.829), (0.124, 0.816), (0.074, 0.758), (0.074, 0.550), (0.074, 0.310), (0.074, 0.166), (0.178, 0.118), (0.178, 0.031), (0.178, 0.004) }" weights = "{ 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000 }" number_of_arcs = 3.000000 arc_weight = 1.000000 accuracy = (100%, 60%);
}
gothic_bridge_end { 
	gothic_bridge_post  position = (0.154530, 0.000000, 0.767307) size = (0.750000, 0.750000, 0.750000) name = "subobject0";
	gothic_bridge_post  position = (0.148517, 0.000000, 0.148517) size = (0.750000, 0.750000, 0.750000) name = "subobject1";
}
gothic_bridge { 
	NURBSCurve  order = 3 knots = "{ 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000}" control_points = "{ (0.007, 0.500), (0.497, 0.578), (0.990, 0.500) }" weights = "{ 1.000, 1.000, 1.000 }" NoDraw name = "subobject1_extrusion_path";
	NURBSCurve  order = 3 knots = "{ 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000}" control_points = "{ (0.500, 1.000), (0.500, 0.500), (0.500, 0.000) }" weights = "{ 1.000, 1.000, 1.000 }" NoDraw name = "subobject1_cross_section";
	ExtrudedObject  position = (0.029518, -0.499274, -0.835000) size = (0.900000, 1.000000, 0.200000) name = "subobject1" extrusion_path = "subobject1_extrusion_path" cross_section = "subobject1_cross_section";
	gothic_bridge_end  position = (-0.000228, 0.000000, -0.970553) size = (0.300000, 0.300000, 0.300000) name = "subobject3";
	gothic_bridge_end  position = (0.858413, 0.000000, -0.977510) size = (0.300000, 0.300000, 0.300000) name = "subobject4";
}

include/tree.txt

standard_leaf {
	Rectangle size = .05 texture = "texture/leaf.png";
}

standard_tree {
	NURBSCurve name = "circle"
		color = (105, 92, 73)
		order = 3	knots = "{ 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4 }"
		control_points = "{ (.5, 0, 0), (1, 0, 0), (1, .5, 0), (1, 1, 0), (.5, 1, 0), (0, 1, 0), (0, .5, 0), (0, 0, 0), (.5, 0, 0) }"
		weights = "{ 1, .707, 1, .707, 1, .707, 1, .707, 1 }"
		NoDraw;
	FractalTree axiom = "F+X>X>X" rules = "X:[F+X>X>X]" recursion_depth = 5
		delta_phi = 35 length_attenuation = 70% leaf = "standard_leaf"
		trunk_cross_section = "circle" trunk_diameter = .05
		pruning_radius = 0 accuracy = 10%;
}

poplar_leaf {
	Rectangle size = .02 texture = "texture/poplar_leaf.png";
}

poplar_tree {
	NURBSCurve name = "circle"
		color = (240, 240, 240)
		order = 3	knots = "{ 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4 }"
		control_points = "{ (.5, 0, 0), (1, 0, 0), (1, .5, 0), (1, 1, 0), (.5, 1, 0), (0, 1, 0), (0, .5, 0), (0, 0, 0), (.5, 0, 0) }"
		weights = "{ 1, .707, 1, .707, 1, .707, 1, .707, 1 }"
		NoDraw;
	FractalTree recursion_depth = 5
		axiom = "X"
		rules = "X:>F[+X]>F[+[X]>[X]][X]+[Y];Y:>F[Y]+[Y]"
		delta_phi = 50 delta_theta = 110 length_attenuation = 63%
		leaf = "poplar_leaf" trunk_cross_section = "circle"
		trunk_diameter = .03 accuracy = 10%;
}

pine_needles {
	Rectangle size = .05 texture = "texture/pine_needles.png";
}

pine_tree {
	NURBSCurve name = "circle"
		color = (105, 92, 73)
		order = 3	knots = "{ 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4 }"
		control_points = "{ (.5, 0, 0), (1, 0, 0), (1, .5, 0), (1, 1, 0), (.5, 1, 0), (0, 1, 0), (0, .5, 0), (0, 0, 0), (.5, 0, 0) }"
		weights = "{ 1, .707, 1, .707, 1, .707, 1, .707, 1 }"
		NoDraw;
	FractalTree axiom = "Y" rules = "X:F[--X];Y:F[>>>>[+++++///X]]"
		delta_phi = 15	 // '+'
		delta_theta = 30 // '>'
		leaf = "pine_needles"
		trunk_cross_section = "circle" trunk_diameter = .05
		recursion_depth = 4 accuracy = 20% length_attenuation = 70%
		pruning_radius = 0;
}

demo.txt

#include "include/architecture.txt"
#include "include/tree.txt"

parthanon_base { 
	stairs_three  position = (0.000000, 0.000000, -0.100000) size = (0.100000, 0.050000, 0.800000) name = "subobject0";
	Cube  position = (0.090000, 0.000000, -0.900000) size = (0.900000, 0.050000, 0.800000) name = "subobject1";
}

parthanon_long_side { 
	simple_column  position = (0.154521, 0.000000, 0.000000) size = (0.200000, 0.400000, 0.200000) name = "subobject1";
	simple_column  position = (0.253360, 0.000000, 0.000000) size = (0.200000, 0.400000, 0.200000) name = "subobject2";
	simple_column  position = (0.364339, 0.000000, 0.000000) size = (0.200000, 0.400000, 0.200000) name = "subobject3";
	simple_column  position = (0.472007, 0.000000, 0.000000) size = (0.200000, 0.400000, 0.200000) name = "subobject4";
	simple_column  position = (0.569226, 0.000000, 0.000000) size = (0.200000, 0.400000, 0.200000) name = "subobject5";
	simple_column  position = (0.675494, 0.000000, 0.000000) size = (0.200000, 0.400000, 0.200000) name = "subobject6";
	simple_column  position = (0.772690, 0.000000, 0.000000) size = (0.200000, 0.400000, 0.200000) name = "subobject7";
	simple_column  position = (0.861310, 0.000000, 0.000000) size = (0.200000, 0.400000, 0.200000) name = "subobject8";
	simple_column  position = (0.949318, 0.000000, 0.000000) size = (0.200000, 0.400000, 0.200000) name = "subobject9";
}

parthanon_short_side { 
	simple_column  position = (0.050000, 0.000000, 0.359954) size = (0.200000, 0.400000, 0.200000) name = "subobject1";
	simple_column  position = (0.050000, -0.000000, 0.465096) size = (0.200000, 0.400000, 0.200000) name = "subobject2";
	simple_column  position = (0.050000, 0.000000, 0.703558) size = (0.200000, 0.400000, 0.200000) name = "subobject3";
	simple_column  position = (0.050000, 0.000000, 0.836795) size = (0.200000, 0.400000, 0.200000) name = "subobject4";
	simple_column  position = (0.050000, 0.000000, 0.570221) size = (0.200000, 0.400000, 0.200000) name = "subobject6";
	simple_column  position = (0.050000, 0.000000, 0.243934) size = (0.200000, 0.400000, 0.200000) name = "subobject7";
}

parthanon_roof { 
	Cube  position = (0.000000, 0.173000, 0.333000) rotation = (45.000000, 0.000000, 0.000000) size = (1.000000, 0.030000, 0.500000) name = "subobject0";
	Cube  position = (0.000000, 0.173, -0.033159) rotation = (-45.000000, 0.000000, 0.000000) size = (1.000000, 0.030000, 0.500000) name = "subobject1";
	Cube  position = (0.025000, 0.173000, 0.333000) rotation = (45.000000, 0.000000, 0.000000) size = (0.950000, 0.030000, 0.450000) name = "subobject2";
	Cube  position = (0.025000, 0.175601, 0.027798) rotation = (-45.000000, 0.000000, 0.000000) size = (0.950000, 0.030000, 0.450000) name = "subobject3";
	Cube  position = (0.025000, 0.000000, 0.050426) size = (0.950000, 0.030000, 0.700000) name = "subobject4";
}

parthanon { 
	parthanon_base  position = (-0.000000, 0.000000, 0.918929) name = "subobject0";
	parthanon_long_side  position = (0.000000, 0.050000, 0.750000) name = "subobject1";
	parthanon_long_side  position = (0.000000, 0.050000, 0.050000) name = "subobject2";
	parthanon_short_side  position = (0.900000, 0.050000, -0.150000) name = "subobject3";
	parthanon_short_side  position = (0.100000, 0.050000, -0.150000) name = "subobject4";
	parthanon_roof position = (0.050000, .45, -0.050000) size = (.95, .5, 1.1) name = "subobject5";
}

subScene { 
	ReliefSculpture  position = (0.000000, -0.030000, 0.000000) file = "demo_land2.jpg" size = (1.000000, 0.160000, 1.000000) threshold = 40 shininess = 0.050000 texture = "texture\grass.jpg" name = "island_ground";
	parthanon  position = (0.261861, 0.090000, 0.390081) rotation = (0.000000, 180.000000, 0.000000) size = (0.050000, 0.050000, 0.050000) name = "subobject2" texture = "texture/marble_sm.jpg";
	gothic_bridge  position = (0.250000, 0.055000, 0.700000) size = 0.200000 shininess = 1.000000 rotation = (0.000000, -20.000000, 0.000000) transparency = 0.900000 name = "subobject3";
	standard_tree  position = (0.633778, 0.078552, 0.445233) rotation = (0.000000, 90.000000, 0.000000) size = (0.080000, 0.080000, 0.080000) name = "subobject4";
	standard_tree  position = (0.303396, 0.065675, 0.442192) size = (0.080000, 0.080000, 0.080000) name = "subobject5";
	standard_tree  position = (0.140336, 0.071515, 0.464128) size = (0.080000, 0.080000, 0.080000) name = "subobject6";
	standard_tree  position = (0.180970, 0.063317, 0.515988) size = (0.080000, 0.080000, 0.080000) name = "subobject7";
	standard_tree  position = (0.532924, 0.065904, 0.465932) size = (0.080000, 0.080000, 0.080000) name = "subobject8";
	standard_tree  position = (0.563812, 0.070438, 0.392039) rotation = (0.000000, 45.000000, 0.000000) size = (0.090000, 0.090000, 0.090000) name = "subobject9";
	poplar_tree  position = (0.590000, 0.074663, 0.396000) size = (0.080000, 0.080000, 0.080000) name = "subobject10";
	poplar_tree  position = (0.639348, 0.079965, 0.337450) rotation = (0.000000, 28.388889, 0.000000) size = (0.080000, 0.080000, 0.080000) name = "subobject11";
	poplar_tree  position = (0.580878, 0.075000, 0.480906) rotation = (0.000000, 50.000000, 0.000000) size = (0.080000, 0.080000, 0.080000) name = "subobject12";
	poplar_tree  position = (0.130000, 0.075000, 0.500000) rotation = (0.000000, 20.000000, 0.000000) size = (0.080000, 0.080000, 0.080000) name = "subobject13";
	poplar_tree  position = (0.206062, 0.066393, 0.316510) rotation = (0.000000, 225.000000, 0.000000) size = (0.080000, 0.080000, 0.080000) name = "subobject14";
}

Scene { 
	Sky sun_phi = 70 name = "theSky";
		//night_image = "texture\NorthNightSky.jpg";

	subScene position = (-22, -5, -5) rotation = (0, 90, 0) size = 50;
	Rectangle position = (-1000, -5, 1000) rotation = (-90, 0, 0)
		color = (0, 40, 128) size = 2000 name = "water";
}

Home    About    Screenshots    Download    Documentation

Copyright © 2001 Geoffrey Prewett