Image_3D
[ class tree: Image_3D ] [ index: Image_3D ] [ all elements ]

Source for file raytrace.php

Documentation is available at raytrace.php

  1. <?php
  2.  
  3. require_once 'Image/3D.php';
  4. // resize image according to this factor
  5. $factor = 5;
  6.  
  7. $world = new Image_3D();
  8. $world->setColor(new Image_3D_Color(255255255));
  9.  
  10. $light $world->createLight('Light'array(-4 * $factor-4 * $factor0));
  11. $light->setColor(new Image_3D_Color(255255255100));
  12. $lightSphere $world->createObject('sphere'array('r' => $factor'detail' => 0));
  13. $lightSphere->transform($world->createMatrix('Move'array(-4 * $factor-4 * $factor0)));
  14. $lightSphere->setColor(new Image_3D_Color(255255255100));
  15.  
  16. $light $world->createLight('Light'array(4 * $factor-4 * $factor0));
  17. $light->setColor(new Image_3D_Color(255255255100));
  18. $lightSphere $world->createObject('sphere'array('r' => $factor'detail' => 0));
  19. $lightSphere->transform($world->createMatrix('Move'array(4 * $factor-4 * $factor0)));
  20. $lightSphere->setColor(new Image_3D_Color(255255255100));
  21.  
  22. $p = array();
  23. $bottom $world->createObject('polygon'array(
  24.     new Image_3D_Point(-5 * $factor3 * $factor5 * $factor),
  25.     new Image_3D_Point(-5 * $factor3 * $factor-5 * $factor),
  26.     new Image_3D_Point(5 * $factor3 * $factor-5 * $factor),
  27.     new Image_3D_Point(5 * $factor3 * $factor5 * $factor),
  28. ));
  29. $bottom->setColor(new Image_3D_Color(2002002000.6));
  30.  
  31. $top $world->createObject('polygon'array(
  32.     new Image_3D_Point(-5 * $factor5 * $factor5 * $factor),
  33.     new Image_3D_Point(5 * $factor5 * $factor5 * $factor),
  34.     new Image_3D_Point(5 * $factor-5 * $factor5 * $factor),
  35.     new Image_3D_Point(-5 * $factor-5 * $factor5 * $factor),
  36. ));
  37. $top->setColor(new Image_3D_Color(2002002000.5));
  38.  
  39. $redPlane $world->createObject('polygon'array(
  40.     new Image_3D_Point(-5 * $factor1 * $factor2 * $factor),
  41.     new Image_3D_Point(-5 * $factor1 * $factor-2 * $factor),
  42.     new Image_3D_Point(-1 * $factor-1 * $factor-2 * $factor),
  43.     new Image_3D_Point(-1 * $factor-1 * $factor2 * $factor),
  44. ));
  45. $redPlane->setColor(new Image_3D_Color(255001000));
  46.  
  47. $bluePlane $world->createObject('polygon'array(
  48.     new Image_3D_Point(5 * $factor1 * $factor2 * $factor),
  49.     new Image_3D_Point(5 * $factor1 * $factor-2 * $factor),
  50.     new Image_3D_Point(1 * $factor-1 * $factor-2 * $factor),
  51.     new Image_3D_Point(1 * $factor-1 * $factor2 * $factor),
  52. ));
  53. $bluePlane->setColor(new Image_3D_Color(10010025500));
  54.  
  55. $world->transform($world->createMatrix('Rotation'array(1000)));
  56.  
  57. if (!@$argv[1]{
  58.     // Create normal GD picture with projection
  59.     echo "Render with projection.\n";
  60.     
  61.     $renderer $world->createRenderer('perspectively');
  62.     $driver $world->createDriver('GD');
  63.     $world->render(15 * $factor15 * $factor'Image_3D_No_Raytrace.png');
  64. else {
  65.     // Raytrace advanced crazy picture
  66.     echo "RAYTRACE!\n";
  67.  
  68.     $renderer $world->createRenderer('Raytrace');
  69.  
  70.     // Define the cameras position
  71.     $renderer->setCameraPosition(new Image_3D_Coordinate(00-50 * $factor));
  72.  
  73.     // define antialiasing level
  74.     $renderer->setRaysPerPixel(2);
  75.  
  76.     // Set recursive scan depth
  77.     $renderer->scanDepth(3);
  78.  
  79.     // Enable shadows
  80.     $renderer->enableShadows(true);
  81.  
  82.     $world->render(15 * $factor15 * $factor'Image_3D_Raytrace.png');
  83. }
  84.  
  85. echo $world->stats();

Documentation generated on Mon, 11 Mar 2019 15:48:14 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.