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$light = $world->createLight('Light', array(-2000, -2000, -2000));
10$light->setColor(new Image_3D_Color(255, 255, 255));
11
12$redSpot = $world->createLight('Spotlight', array(0, 0, -200, 'aim' => array(0, -25, 0), 'angle' => 30, 'float' => 2));
13$redSpot->setColor(new Image_3D_Color(255, 0, 0));
14
15$blueSpot = $world->createLight('Spotlight', array(0, 0, -200, 'aim' => array(-35, 25, 0), 'angle' => 30, 'float' => 2));
16$blueSpot->setColor(new Image_3D_Color(0, 0, 255));
17
18$greenSpot = $world->createLight('Spotlight', array(0, 0, -200, 'aim' => array(35, 25, 0), 'angle' => 30, 'float' => 2));
19$greenSpot->setColor(new Image_3D_Color(0, 255, 0));
20
21$map = $world->createObject('map');
22
23$detail = 80;
24$size = 200;
25$height = 40;
26
27$raster = 1 / $detail;
28for ($x = -1; $x <= 1; $x += $raster) {
29	$row = array();
30	for ($y = -1; $y <= 1; $y += $raster) {
31		$row[] = new Image_3D_Point($x * $size, $y * $size, sin($x * pi()) * sin($y * 2 * pi()) * $height);
32	}
33	$map->addRow($row);
34}
35
36$map->setColor(new Image_3D_Color(150, 150, 150, 0));
37
38$world->transform($world->createMatrix('Rotation', array(-20, 10, -10)));
39
40$world->createRenderer('perspectively');
41$world->createDriver('GD');
42$world->render(400, 400, 'Image_3D_Spotlights.png');
43
44echo $world->stats();
45
46