1<?php
2
3$images = 'php://output';
4$iterations = 50;
5
6set_time_limit(0);
7require_once('Image/3D.php');
8
9$world = new Image_3D();
10$world->setColor(new Image_3D_Color(0, 0, 0));
11
12$light1 = $world->createLight('Light', array(-500, -500, -500));
13$light1->setColor(new Image_3D_Color(255, 255, 255));
14
15$light2 = $world->createLight('Light', array(0, 500, -550));
16$light2->setColor(new Image_3D_Color(0, 255, 0));
17
18$p1 = $world->createObject('cube', array(80, 80, 80));
19$p1->setColor(new Image_3D_Color(200, 200, 200));
20$p1->transform($world->createMatrix('Rotation', array(45, 45, 0)));
21
22$world->setOption(Image_3D::IMAGE_3D_OPTION_BF_CULLING, false);
23$world->setOption(Image_3D::IMAGE_3D_OPTION_FILLED, true);
24
25$rotation = $world->createMatrix('Rotation', array(2, 5, 0));
26$renderer = $world->createRenderer('perspectively');
27$driver = $world->createDriver('ASCII');
28
29$world->render(2 * 80, 6 * 30, $images);
30
31$start = microtime(true);
32$i = 0;
33while ($i++ < $iterations) {
34	$p1->transform($rotation);
35	$driver->reset();
36	$renderer->render($images);
37}
38
39$time = microtime(true) - $start;
40printf("%2.2f fps\n", $iterations / $time);
41
42