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.

231 lines
11 KiB

  1. <?php
  2. namespace Blobt\Luxcore\scene;
  3. include dirname(dirname(__FILE__)) . "/vendor/autoload.php";
  4. $scene = new Scene(); // 创建一个场景
  5. // 一、创建光场:
  6. // 1、创建 面片光001
  7. $obj = new objects\Objects(); // 创建 面片光001 的实体
  8. $obj->ply = './ply/面光.001.ply'; // 指定 面片光001 实体网格数据
  9. $materials = new materials\Matte(); // 创建一个材质
  10. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  11. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  12. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  13. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  14. $obj->setMaterial($materials); // 为 面片光001 指定一个自发光材质
  15. $scene->registerObjects($obj); // 将 面片光001 注册到 scene 中
  16. // 2、创建 面片光002
  17. $obj = new objects\Objects(); // 创建 面片光002 的实体
  18. $obj->ply = './ply/面光.002.ply'; // 指定 面片光002 实体网格数据
  19. $materials = new materials\Matte(); // 创建一个材质
  20. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  21. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  22. $materials->setEmission('0 0 0'); // 设置材质为一个自发光材质,并指定发光颜色
  23. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  24. [
  25. 'gain' => "30 30 30", // 设置发光增益
  26. ]
  27. );
  28. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  29. $obj->setMaterial($materials); // 为 面片光002 指定一个自发光材质
  30. $scene->registerObjects($obj); // 将 面片光002 注册到 scene 中
  31. // 3、创建 面片光003
  32. $obj = new objects\Objects(); // 创建 面片光003 的实体
  33. $obj->ply = './ply/面光.003.ply'; // 指定 面片光003 实体网格数据
  34. $materials = new materials\Matte(); // 创建一个材质
  35. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  36. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  37. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  38. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  39. [
  40. 'gain' => "50 50 50", // 设置发光增益
  41. ]
  42. );
  43. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  44. $obj->setMaterial($materials); // 为 面片光003 指定一个自发光材质
  45. $scene->registerObjects($obj); // 将 面片光003 注册到 scene 中
  46. // 4、创建 面片光004
  47. $obj = new objects\Objects(); // 创建 面片光004 的实体
  48. $obj->ply = './ply/面光.004.ply'; // 指定 面片光004 实体网格数据
  49. $materials = new materials\Matte(); // 创建一个材质
  50. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  51. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  52. $materials->setEmission('0 0 0'); // 设置材质为一个自发光材质,并指定发光颜色
  53. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  54. [
  55. 'gain' => "4 4 4", // 设置发光增益
  56. ]
  57. );
  58. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  59. $obj->setMaterial($materials); // 为 面片光004 指定一个自发光材质
  60. $scene->registerObjects($obj); // 将 面片光004 注册到 scene 中
  61. // 5、创建 面片光005
  62. $obj = new objects\Objects(); // 创建 面片光005 的实体
  63. $obj->ply = './ply/面光.005.ply'; // 指定 面片光005 实体网格数据
  64. $materials = new materials\Matte(); // 创建一个材质
  65. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  66. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  67. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  68. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  69. [
  70. 'gain' => "10 10 10", // 设置发光增益
  71. ]
  72. );
  73. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  74. $obj->setMaterial($materials); // 为 面片光005 指定一个自发光材质
  75. $scene->registerObjects($obj); // 将 面片光005 注册到 scene 中
  76. // 6、创建 面片光006
  77. $obj = new objects\Objects(); // 创建 面片光006 的实体
  78. $obj->ply = './ply/面光.006.ply'; // 指定 面片光006 实体网格数据
  79. $materials = new materials\Matte(); // 创建一个材质
  80. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  81. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  82. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  83. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  84. [
  85. 'gain' => "8 8 8", // 设置发光增益
  86. 'mapfile' => "SD-037.exr", // 加载一个光域文件
  87. 'gamma' => 1, // 设置校正光域文件的gamma值
  88. 'storage' => "float" // 声明光域文件表示色值的数据类型
  89. ]
  90. );
  91. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  92. $obj->setMaterial($materials); // 为 面片光006 指定一个自发光材质
  93. $scene->registerObjects($obj); // 将 面片光006 注册到 scene 中
  94. // 7、创建 面片光006
  95. $obj = new objects\Objects(); // 创建 面片光 的实体
  96. $obj->ply = './ply/面光.ply'; // 指定 面片光 实体网格数据
  97. $materials = new materials\Matte(); // 创建一个材质
  98. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  99. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  100. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  101. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  102. [
  103. 'gain' => "3.3 3.3 3.3", // 设置发光增益
  104. ]
  105. );
  106. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  107. $obj->setMaterial($materials); // 为 面片光 指定一个自发光材质
  108. $scene->registerObjects($obj); // 将 面片光 注册到 scene 中
  109. // 8、创建环境光
  110. $light = new lights\env\HdrImage( // new 一个环境光对象
  111. [
  112. 'gain' => "1.25 1.25 1.25", // 设置颜色增益
  113. 'transformation' => "0.1736481 -0.9848078 0 0 -0.9848078 -0.1736481 0 0 0 0 1 0 0 0 0 1", //设置对象变换
  114. 'file' => "env.png", // 加载一个全景图像文件
  115. 'gamma' => 1, // 设置一个校正全景图像文件的 gamma 值
  116. 'storage' => "byte" // 声明这个图像文件表示色值的数据类型
  117. ]
  118. );
  119. $scene->registerLight($light); // 将环境光注册到 scene 中
  120. // 二、加载要渲染的模型
  121. // //添加第一个模型
  122. // $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' ] ); //创建一个的模型
  123. // $cloudsMap = new texture\procedural\BlenderClouds(); //创建一个 Clouds类的贴图对象
  124. // $scene->registerTexture($cloudsMap); //将这个对象注册到 Scene
  125. // $imageMap = new texture\procedural\ImageMap(); //创建一个 ImageMap类的贴图对象
  126. // $scene->registerTexture($imageMap); //将这个对象注册到 Scene
  127. // $blend = new texture\procedural\BlenderBlend(); //创建一个 Blend类的贴图对象
  128. // $scene->registerTexture($blend); //将这个对象注册到 Scene
  129. // $disney = new materials\Disney(); //创建一个 Disney 材质对象
  130. // $disney->setBaseColor($cloudsMap); //为 basecolor 指定一个贴图对象,如果这个对象没有注册到Scene,则 set函数抛出异常,以下同理
  131. // $disney->setMetallic($blend);
  132. // $disney->setBumptex($imageMap);
  133. // $scene->registerMaterial($disney); //将这个对象注册到 Scene
  134. // $metal = new materials\Metal(); //创建一个 Disney 材质对象
  135. // $metal->setBumptex($cloudsMap);
  136. // $scene->registerMaterial($metal); //将这个对象注册到 Scene
  137. // $mix = new materials\Mix(); //创建 Mix 材质对象
  138. // $mix->setMaterial1($disney); //为材质通道1 指定一个键名
  139. // $mix->setMaterial2($metal); //为材质通道2 指定一个键名
  140. // $mix->setAmount($blend ); //指定混合系数为 0.6
  141. // $scene->registerMaterial($mix); //将这个对象注册到 Scene
  142. // $obj->setMaterial($mix) ; //为模型的指定一个混合材质
  143. // $scene->registerObjects($obj); //将模型添加到场景中
  144. // //添加第二个模型
  145. // $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' ] ); //创建一个的模型,
  146. // $scene->registerObjects($obj); //将模型添加到场景中
  147. // //添加第三个模型
  148. // $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' ] ); //创建一个的模型,
  149. // $scene->registerObjects($obj); //将模型添加到场景中
  150. // //添加第四个模型
  151. // $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' ] ); //创建一个的模型,
  152. // $ClearVol = new volumes\Clear(); //创建一个 Clear体积效果
  153. // $scene->registerVolume($ClearVol); //将体积效果注册到Scene
  154. // $colorGlass = new materials\Glass(); //创建一个玻璃材质,
  155. // $colorGlass->setVolumeInterior($ClearVol); //将 Clear体积效果赋值到玻璃材质 的 体积属性
  156. // $scene->registerMaterial($colorGlass); //将玻璃材质注册到 Scene
  157. // $obj->setMaterial($colorGlass); //将玻璃材质赋值到模型的材质属性
  158. // $scene->registerObjects($obj); //将模型添加到场景中
  159. // //添加一个世界对象
  160. // $default = new world\WorldDefault();
  161. // $default->setDefaultVolume($ClearVol);
  162. // $scene->registerWorld($default);
  163. // //添加一个相机
  164. // $camera = new camera\Perspective();
  165. // $scene->registerCamera($camera);
  166. echo $scene;
  167. ?>