Blender渲染
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
3.2 KiB

  1. <?php
  2. namespace Blobt\Luxcore\scene;
  3. include dirname(dirname(__FILE__)) . "/vendor/autoload.php";
  4. $scene = new Scene();
  5. //添加第一个模型
  6. $obj = new objects\Objects( [ 'ply' => 'mesh-10086.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型
  7. $cloudsMap = new texture\procedural\BlenderClouds(); //创建一个 Clouds类的贴图对象
  8. $scene->registerTexture($cloudsMap); //将这个对象注册到 Scene
  9. $imageMap = new texture\procedural\ImageMap(); //创建一个 ImageMap类的贴图对象
  10. $scene->registerTexture($imageMap); //将这个对象注册到 Scene
  11. $blend = new texture\procedural\BlenderBlend(); //创建一个 Blend类的贴图对象
  12. $scene->registerTexture($blend); //将这个对象注册到 Scene
  13. $disney = new materials\Disney(); //创建一个 Disney 材质对象
  14. $disney->setBaseColor($cloudsMap); //为 basecolor 指定一个贴图对象,如果这个对象没有注册到Scene,则 set函数抛出异常,以下同理
  15. $disney->setMetallic($blend);
  16. $disney->setBumptex($imageMap);
  17. $scene->registerMaterial($disney); //将这个对象注册到 Scene
  18. $metal = new materials\Metal(); //创建一个 Disney 材质对象
  19. $metal->setBumptex($cloudsMap);
  20. $scene->registerMaterial($metal); //将这个对象注册到 Scene
  21. $mix = new materials\Mix(); //创建 Mix 材质对象
  22. $mix->setMaterial1($disney); //为材质通道1 指定一个键名
  23. $mix->setMaterial2($metal); //为材质通道2 指定一个键名
  24. $mix->setAmount($blend ); //指定混合系数为 0.6
  25. $scene->registerMaterial($mix); //将这个对象注册到 Scene
  26. $obj->setMaterial($mix) ; //为模型的指定一个混合材质
  27. $scene->registerObjects($obj); //将模型添加到场景中
  28. //添加第二个模型
  29. $obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型,
  30. $scene->registerObjects($obj); //将模型添加到场景中
  31. //添加第三个模型
  32. $obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型,
  33. $scene->registerObjects($obj); //将模型添加到场景中
  34. //添加第四个模型
  35. $obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型,
  36. $ClearVol = new volumes\Clear(); //创建一个 Clear体积效果
  37. $scene->registerVolume($ClearVol); //将体积效果注册到Scene
  38. $colorGlass = new materials\Glass(); //创建一个玻璃材质,
  39. $colorGlass->setVolumeInterior($ClearVol); //将 Clear体积效果赋值到玻璃材质 的 体积属性
  40. $scene->registerMaterial($colorGlass); //将玻璃材质注册到 Scene
  41. $obj->setMaterial($colorGlass); //将玻璃材质赋值到模型的材质属性
  42. $scene->registerObjects($obj); //将模型添加到场景中
  43. //添加一个世界对象
  44. $default = new world\WorldDefault();
  45. $default->setDefaultVolume($ClearVol);
  46. $scene->registerWorld($default);
  47. //添加一个相机
  48. $camera = new camera\Perspective();
  49. $scene->registerCamera($camera);
  50. echo $scene;
  51. ?>