1<?php
2
3set_time_limit(0);
4require_once('Image/3D.php');
5
6$world = new Image_3D();
7$world->setColor(new Image_3D_Color(255, 255, 255));
8
9$light1 = $world->createLight('Light', array(-20, -20, -20));
10$light1->setColor(new Image_3D_Color(255, 255, 255));
11
12$light2 = $world->createLight('Light', array(20, 20, -20));
13$light2->setColor(new Image_3D_Color(0, 200, 0));
14
15$map = $world->createObject('map');
16
17$detail = 30;
18$size = 150;
19$height = 40;
20
21$raster = 1 / $detail;
22for ($x = -1; $x <= 1; $x += $raster) {
23	$row = array();
24	for ($y = -1; $y <= 1; $y += $raster) {
25		$row[] = new Image_3D_Point($x * $size, $y * $size, sin($x * pi()) * sin($y * 2 * pi()) * $height);
26	}
27	$map->addRow($row);
28}
29
30$map->setColor(new Image_3D_Color(150, 150, 150, 0));
31$map->transform($world->createMatrix('Rotation', array(-40, 20, -10)));
32
33$world->setOption(Image_3D::IMAGE_3D_OPTION_BF_CULLING, false);
34$world->setOption(Image_3D::IMAGE_3D_OPTION_FILLED, true);
35
36$world->createRenderer('perspectively');
37$world->createDriver('GD');
38$world->render(400, 400, 'Image_3D_Object_Map.png');
39
40echo $world->stats();
41
42