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.

529 lines
34 KiB

  1. <?php
  2. namespace Blobt\Luxcore\scene;
  3. include dirname(dirname(__FILE__)) . "/vendor/autoload.php";
  4. const OPEN = true;
  5. const CLOSE = false;
  6. $scene = new Scene(); // 创建一个场景
  7. // 一、创建光场:
  8. // 1、创建 面片光001
  9. $obj = new objects\Objects(); // 创建 面片光001 的实体
  10. $obj->ply = './ply/面光.001.ply'; // 指定 面片光001 实体网格数据
  11. $materials = new materials\Matte(); // 创建一个材质
  12. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  13. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  14. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  15. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  16. $obj->setMaterial($materials); // 为 面片光001 指定一个自发光材质
  17. $scene->registerObjects($obj); // 将 面片光001 注册到 scene 中
  18. // 2、创建 面片光002
  19. $obj = new objects\Objects(); // 创建 面片光002 的实体
  20. $obj->ply = './ply/面光.002.ply'; // 指定 面片光002 实体网格数据
  21. $materials = new materials\Matte(); // 创建一个材质
  22. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  23. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  24. $materials->setEmission('0 0 0'); // 设置材质为一个自发光材质,并指定发光颜色
  25. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  26. [
  27. 'gain' => "30 30 30", // 设置发光增益
  28. ]
  29. );
  30. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  31. $obj->setMaterial($materials); // 为 面片光002 指定一个自发光材质
  32. $scene->registerObjects($obj); // 将 面片光002 注册到 scene 中
  33. // 3、创建 面片光003
  34. $obj = new objects\Objects(); // 创建 面片光003 的实体
  35. $obj->ply = './ply/面光.003.ply'; // 指定 面片光003 实体网格数据
  36. $materials = new materials\Matte(); // 创建一个材质
  37. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  38. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  39. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  40. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  41. [
  42. 'gain' => "50 50 50", // 设置发光增益
  43. ]
  44. );
  45. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  46. $obj->setMaterial($materials); // 为 面片光003 指定一个自发光材质
  47. $scene->registerObjects($obj); // 将 面片光003 注册到 scene 中
  48. // 4、创建 面片光004
  49. $obj = new objects\Objects(); // 创建 面片光004 的实体
  50. $obj->ply = './ply/面光.004.ply'; // 指定 面片光004 实体网格数据
  51. $materials = new materials\Matte(); // 创建一个材质
  52. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  53. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  54. $materials->setEmission('0 0 0'); // 设置材质为一个自发光材质,并指定发光颜色
  55. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  56. [
  57. 'gain' => "4 4 4", // 设置发光增益
  58. ]
  59. );
  60. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  61. $obj->setMaterial($materials); // 为 面片光004 指定一个自发光材质
  62. $scene->registerObjects($obj); // 将 面片光004 注册到 scene 中
  63. // 5、创建 面片光005
  64. $obj = new objects\Objects(); // 创建 面片光005 的实体
  65. $obj->ply = './ply/面光.005.ply'; // 指定 面片光005 实体网格数据
  66. $materials = new materials\Matte(); // 创建一个材质
  67. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  68. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  69. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  70. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  71. [
  72. 'gain' => "10 10 10", // 设置发光增益
  73. ]
  74. );
  75. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  76. $obj->setMaterial($materials); // 为 面片光005 指定一个自发光材质
  77. $scene->registerObjects($obj); // 将 面片光005 注册到 scene 中
  78. // 6、创建 面片光006
  79. $obj = new objects\Objects(); // 创建 面片光006 的实体
  80. $obj->ply = './ply/面光.006.ply'; // 指定 面片光006 实体网格数据
  81. $materials = new materials\Matte(); // 创建一个材质
  82. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  83. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  84. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  85. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  86. [
  87. 'gain' => "8 8 8", // 设置发光增益
  88. 'mapfile' => "SD-037.exr", // 加载一个光域文件
  89. 'gamma' => 1, // 设置校正光域文件的gamma值
  90. 'storage' => "float" // 声明光域文件表示色值的数据类型
  91. ]
  92. );
  93. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  94. $obj->setMaterial($materials); // 为 面片光006 指定一个自发光材质
  95. $scene->registerObjects($obj); // 将 面片光006 注册到 scene 中
  96. // 7、创建 面片光006
  97. $obj = new objects\Objects(); // 创建 面片光 的实体
  98. $obj->ply = './ply/面光.ply'; // 指定 面片光 实体网格数据
  99. $materials = new materials\Matte(); // 创建一个材质
  100. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  101. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  102. $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
  103. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  104. [
  105. 'gain' => "3.3 3.3 3.3", // 设置发光增益
  106. ]
  107. );
  108. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  109. $obj->setMaterial($materials); // 为 面片光 指定一个自发光材质
  110. $scene->registerObjects($obj); // 将 面片光 注册到 scene 中
  111. // 8、创建环境光
  112. $light = new lights\env\HdrImage( // new 一个环境光对象
  113. [
  114. 'gain' => "1.25 1.25 1.25", // 设置颜色增益
  115. 'transformation' => "0.1736481 -0.9848078 0 0 -0.9848078 -0.1736481 0 0 0 0 1 0 0 0 0 1", //设置对象变换
  116. 'file' => "./env.png", // 加载一个全景图像文件
  117. 'gamma' => 1, // 设置一个校正全景图像文件的 gamma 值
  118. 'storage' => "byte" // 声明这个图像文件表示色值的数据类型
  119. ]
  120. );
  121. $light->id = 0; // 一个场景只能有一个环境光对象,并且 id 必须为 0
  122. $scene->registerLight($light); // 将环境光注册到 scene 中
  123. // 二、添加要渲染的模型
  124. // 1、创建地面模型
  125. $obj = new objects\Objects(); // 创建 地面 的实体
  126. $obj->ply = './ply/地面.ply'; // 指定 地面 实体网格数据
  127. $mapping = new texture\mapping\Mapping(); // 创建一个铺贴对象
  128. $mapping->useUVMapping2d( // 使用"uvmapping2d"类型的铺贴对象
  129. 0, // uv通道
  130. "0", // 旋转角度
  131. "0.4 -0.966", // 缩放比例
  132. "0.3 0.983" // 偏移量
  133. );
  134. $texture = new texture\procedural\ImageMap( // 创建一个纹理
  135. [
  136. 'file' => "./方形阴影遮照.png", // 加载一个图像文件
  137. 'gain' => 0.6, // 设置颜色增益
  138. 'gamma' => 1, // 设置校正图像文件的gamma值
  139. ]
  140. );
  141. $texture->mapping = $mapping; // 将铺贴对象赋值给纹理的“mapping”属性
  142. $scene->registerTexture($texture); // 将纹理注册到 scene 中
  143. $materials = new materials\Disney( // 创建一个材质
  144. [
  145. 'shadowcatcherEnable' => OPEN, // 设置为阴影捕捉器
  146. 'photongiEnable' => CLOSE // 关闭此材质的全局光缓存
  147. ]
  148. );
  149. $materials->setBaseColor('1 1 1'); // 设置材质的漫反射
  150. $materials->setTransparencyFront($texture); // 将纹理设置为材质的正面透明度
  151. $materials->setTransparencyBack($texture); // 将纹理设置为材质的背面透明度
  152. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  153. $obj->setMaterial($materials); // 设置 地面模型 的材质属性
  154. $scene->registerObjects($obj); // 将 地面模型 注册到 scene 中
  155. // 2、创建 刷毛003 模型
  156. $obj = new objects\Objects(); // 创建 刷毛003 的实体
  157. $obj->ply = './ply/刷毛003.ply'; // 指定 刷毛003 实体网格数据
  158. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1"; // 设置模型的变换
  159. $materials = new materials\Disney(); // 创建一个材质
  160. $materials->setBaseColor( '0.233238 0.567919 0.654361' ); // 设置材质的漫反射
  161. $materials->setSpecular('1'); // 设置材质的高光反射强度
  162. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  163. $obj->setMaterial($materials); // 设置 刷毛003 的材质属性
  164. $scene->registerObjects($obj); // 将 刷毛003 注册到 scene 中
  165. // 3、创建 刷毛002 模型
  166. $obj = new objects\Objects(); // 创建 刷毛002 的实体
  167. $obj->ply = './ply/刷毛002.ply'; // 指定 刷毛002 实体网格数据
  168. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  169. // 设置模型的变换
  170. $materials = new materials\Disney(); // 创建一个材质
  171. $materials->setBaseColor( '0.0739024 0.0739024 0.0739024' );// 设置材质的漫反射
  172. $materials->setSpecular('1'); // 设置材质的高光反射强度
  173. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  174. $obj->setMaterial($materials); // 设置 刷毛002 的材质属性
  175. $scene->registerObjects($obj); // 将 刷毛002 注册到 scene 中
  176. // 3、创建 刷毛001 模型
  177. $obj = new objects\Objects(); // 创建 刷毛001 的实体
  178. $obj->ply = './ply/刷毛001.ply'; // 指定 刷毛001 实体网格数据
  179. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  180. // 设置模型的变换
  181. $materials = new materials\Disney(); // 创建一个材质
  182. $materials->setBaseColor( '0.857449 0.857449 0.857449' ); // 设置材质的漫反射
  183. $materials->setSpecular('1'); // 设置材质的高光反射强度
  184. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  185. $obj->setMaterial($materials); // 设置 刷毛001 的材质属性
  186. $scene->registerObjects($obj); // 将 刷毛001 注册到 scene 中
  187. // 4、创建 牙刷头 模型
  188. $obj = new objects\Objects(); // 创建 牙刷头 的实体
  189. $obj->ply = './ply/牙刷头.ply'; // 指定 牙刷头 实体网格数据
  190. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  191. // 设置模型的变换
  192. $materials = new materials\Disney(); // 创建一个材质
  193. $materials->setBaseColor( '0.701102 0.701102 0.701102' ); // 设置材质的漫反射
  194. $materials->setSpecular('0.5'); // 设置材质的高光反射强度
  195. $materials->setRoughness('0.05'); // 设置粗糙度
  196. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  197. $obj->setMaterial($materials); // 设置 牙刷头 的材质属性
  198. $scene->registerObjects($obj); // 将 牙刷头 注册到 scene 中
  199. // 5、创建 牙刷头文字 模型
  200. $obj = new objects\Objects(); // 创建 牙刷头文字 的实体
  201. $obj->ply = './ply/牙刷头文字.ply'; // 指定 牙刷头文字 实体网格数据
  202. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  203. // 设置模型的变换
  204. $materials = new materials\Disney(); // 创建一个材质
  205. $materials->setBaseColor( '0.0144817 0.0144817 0.0144817' );// 设置材质的漫反射
  206. $materials->setSpecular('1'); // 设置材质的高光反射强度
  207. $materials->setRoughness('0'); // 设置粗糙度
  208. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  209. $obj->setMaterial($materials); // 设置 牙刷头文字 的材质属性
  210. $scene->registerObjects($obj); // 将 牙刷头文字 注册到 scene 中
  211. // 6、创建 金属振动轴 模型
  212. $obj = new objects\Objects(); // 创建 金属振动轴 的实体
  213. $obj->ply = './ply/金属振动轴.ply'; // 指定 金属振动轴 实体网格数据
  214. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  215. // 设置模型的变换
  216. $texture = new texture\procedural\Fresnelcolor(); // 创建一个菲涅尔反射纹理
  217. $texture->setRefraction('0.7 0.7 0.7'); // 设置反射颜色
  218. $scene->registerTexture($texture); // 将纹理注册到 scene 中
  219. $materials = new materials\Metal(); // 创建一个材质
  220. $materials->setFresnel($texture); // 设置材质的金属度
  221. $materials->setUroughness('0.15'); // 设置U向粗糙度
  222. $materials->setVroughness('0.15'); // 设置V向粗糙度
  223. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  224. $obj->setMaterial($materials); // 设置 金属振动轴 的材质属性
  225. $scene->registerObjects($obj); // 将 金属振动轴 注册到 scene 中
  226. // 7、创建 金属按扭底坐 模型
  227. $obj = new objects\Objects(); // 创建 金属按扭底坐 的实体
  228. $obj->ply = './ply/金属按扭底坐.ply'; // 指定 金属按扭底坐 实体网格数据
  229. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  230. // 设置模型的变换
  231. $texture = new texture\procedural\Fresnelcolor(); // 创建一个菲涅尔反射纹理
  232. $texture->setRefraction('0.7 0.7 0.7'); // 设置反射颜色
  233. $scene->registerTexture($texture); // 将纹理注册到 scene 中
  234. $materials = new materials\Metal(); // 创建一个材质
  235. $materials->setFresnel($texture); // 设置材质的金属度
  236. $materials->setUroughness('0.05'); // 设置U向粗糙度
  237. $materials->setVroughness('0.05'); // 设置V向粗糙度
  238. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  239. $obj->setMaterial($materials); // 设置 金属按扭底坐 的材质属性
  240. $scene->registerObjects($obj); // 将 金属按扭底坐 注册到 scene 中
  241. // 8、创建 刷毛样本金属圆管 模型
  242. $obj = new objects\Objects(); // 创建 刷毛样本金属圆管 的实体
  243. $obj->ply = './ply/刷毛样本金属圆管.ply'; // 指定 刷毛样本金属圆管 实体网格数据
  244. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  245. // 设置模型的变换
  246. $obj->setMaterial($materials); // 将上一个相同的材质设置为 刷毛样本金属圆管 的材质属性
  247. $scene->registerObjects($obj); // 将 刷毛样本金属圆管 注册到 scene 中
  248. // 9、创建 金属印字 模型
  249. $obj = new objects\Objects(); // 创建 金属印字 的实体
  250. $obj->ply = './ply/金属印字.ply'; // 指定 金属印字 实体网格数据
  251. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  252. // 设置模型的变换
  253. $obj->setMaterial($materials); // 将上一个相同的材质设置为 金属印字 的材质属性
  254. $scene->registerObjects($obj); // 将 金属印字 注册到 scene 中
  255. // 10、创建 刷毛样本印字 模型
  256. $obj = new objects\Objects(); // 创建 刷毛样本印字 的实体
  257. $obj->ply = './ply/刷毛样本印字.ply'; // 指定 刷毛样本印字 实体网格数据
  258. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  259. // 设置模型的变换
  260. $materials = new materials\Disney(); // 创建一个材质
  261. $materials->setBaseColor( '0.248287 0.0124709 0.0377595' ); // 设置材质的漫反射
  262. $materials->setSpecular('0.5'); // 设置材质的高光反射强度
  263. $materials->setRoughness('0.2'); // 设置粗糙度
  264. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  265. $obj->setMaterial($materials); // 设置 刷毛样本印字 的材质属性
  266. $scene->registerObjects($obj); // 将 刷毛样本印字 注册到 scene 中
  267. // 11、创建 刷毛样本001 模型
  268. $obj = new objects\Objects(); // 创建 刷毛样本001 的实体
  269. $obj->ply = './ply/刷毛样本001.ply'; // 指定 刷毛样本001 实体网格数据
  270. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  271. // 设置模型的变换
  272. $materials = new materials\Disney(); // 创建一个材质
  273. $materials->setBaseColor( '0.0204376 0.29558 0.16471' ); // 设置材质的漫反射
  274. $materials->setSpecular('0.5'); // 设置材质的高光反射强度
  275. $materials->setRoughness('0.2'); // 设置粗糙度
  276. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  277. $obj->setMaterial($materials); // 设置 刷毛样本001 的材质属性
  278. $scene->registerObjects($obj); // 将 刷毛样本001 注册到 scene 中
  279. // 12、创建 刷毛样本002 模型
  280. $obj = new objects\Objects(); // 创建 刷毛样本002 的实体
  281. $obj->ply = './ply/刷毛样本002.ply'; // 指定 刷毛样本002 实体网格数据
  282. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  283. // 设置模型的变换
  284. $materials = new materials\Glass(); // 创建一个材质
  285. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  286. $obj->setMaterial($materials); // 设置 刷毛样本002 的材质属性
  287. $scene->registerObjects($obj); // 将 刷毛样本002 注册到 scene 中
  288. // 13、创建 透明塑料壳 模型
  289. $obj = new objects\Objects(); // 创建 透明塑料壳 的实体
  290. $obj->ply = './ply/透明塑料壳.ply'; // 指定 透明塑料壳 实体网格数据
  291. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  292. // 设置模型的变换
  293. $obj->setMaterial($materials); // 将上一个相同的材质设置为 透明塑料壳 的材质属性
  294. $scene->registerObjects($obj); // 将 透明塑料壳 注册到 scene 中
  295. // 14、创建 圆柱形塑料壳 模型
  296. $obj = new objects\Objects(); // 创建 圆柱形塑料壳 的实体
  297. $obj->ply = './ply/圆柱形塑料壳.ply'; // 指定 圆柱形塑料壳 实体网格数据
  298. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  299. // 设置模型的变换
  300. $materials = new materials\Disney(); // 创建一个材质
  301. $materials->setBaseColor( '0.291771 0.361307 0.701102' ); // 设置材质的漫反射
  302. $materials->setSpecular('0.5'); // 设置材质的高光反射强度
  303. $materials->setRoughness('0.0470588'); // 设置粗糙度
  304. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  305. $obj->setMaterial($materials); // 设置 圆柱形塑料壳 的材质属性
  306. $scene->registerObjects($obj); // 将 圆柱形塑料壳 注册到 scene 中
  307. // 15、创建 塑料垫子 模型
  308. $obj = new objects\Objects(); // 创建 塑料垫子 的实体
  309. $obj->ply = './ply/塑料垫子.ply'; // 指定 塑料垫子 实体网格数据
  310. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  311. // 设置模型的变换
  312. $materials = new materials\Disney(); // 创建一个材质
  313. $materials->setBaseColor( '0.701102 0.701102 0.701102' ); // 设置材质的漫反射
  314. $materials->setSpecular('0.5'); // 设置材质的高光反射强度
  315. $materials->setRoughness('0.05'); // 设置粗糙度
  316. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  317. $obj->setMaterial($materials); // 设置 塑料垫子 的材质属性
  318. $scene->registerObjects($obj); // 将 塑料垫子 注册到 scene 中
  319. // 16、创建 按扭印字 模型
  320. $obj = new objects\Objects(); // 创建 按扭印字 的实体
  321. $obj->ply = './ply/按扭印字.ply'; // 指定 按扭印字 实体网格数据
  322. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  323. // 设置模型的变换
  324. $materials = new materials\Disney(); // 创建一个材质
  325. $materials->setBaseColor( '0.0144817 0.0144817 0.0144817' );// 设置材质的漫反射
  326. $materials->setSpecular('1'); // 设置材质的高光反射强度
  327. $materials->setRoughness('0'); // 设置粗糙度
  328. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  329. $obj->setMaterial($materials); // 设置 按扭印字 的材质属性
  330. $scene->registerObjects($obj); // 将 按扭印字 注册到 scene 中
  331. // 17、创建 散光灯罩 模型
  332. $obj = new objects\Objects(); // 创建 散光灯罩 的实体
  333. $obj->ply = './ply/散光灯罩.ply'; // 指定 散光灯罩 实体网格数据
  334. $obj->appliedtransformation = "0.001 0 0 0 0 -1.629207e-10 0.001 0 0 -0.001 -1.629207e-10 0 0 0 0 1";
  335. // 设置模型的变换
  336. $materials = new materials\Disney(); // 创建一个材质
  337. $materials->setBaseColor( '0.7 0.7 0.7' ); // 设置材质的漫反射
  338. $materials->setSpecular('0.5'); // 设置材质的高光反射强度
  339. $materials->setRoughness('1'); // 设置粗糙度
  340. $materials->setTransparencyFront('0.75');
  341. $materials->setTransparencyBack('0.75');
  342. $scene->registerMaterial($materials); // 将材质注册到 scene 中
  343. $obj->setMaterial($materials); // 设置 散光灯罩 的材质属性
  344. $scene->registerObjects($obj); // 将 散光灯罩 注册到 scene 中
  345. // 18、创建 蓝色灯光 模型
  346. $obj = new objects\Objects(); // 创建 蓝色灯光 的实体
  347. $obj->ply = './ply/蓝色灯光.ply'; // 指定 蓝色灯光 实体网格数据
  348. $materials = new materials\Matte(); // 创建一个材质
  349. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  350. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  351. $materials->setEmission('0.00604871 0.278894 1'); // 设置材质为一个自发光材质,并指定发光颜色
  352. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  353. [
  354. 'gain' => "5 5 5", // 设置发光增益
  355. ]
  356. );
  357. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  358. $obj->setMaterial($materials); // 为 蓝色灯光 指定一个自发光材质
  359. $scene->registerObjects($obj); // 将 蓝色灯光 注册到 scene 中
  360. // 19、创建 櫈色灯光 模型
  361. $obj = new objects\Objects(); // 创建 櫈色灯光 的实体
  362. $obj->ply = './ply/櫈色灯光.ply'; // 指定 櫈色灯光 实体网格数据
  363. $materials = new materials\Matte(); // 创建一个材质
  364. $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
  365. $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
  366. $materials->setEmission('1 0.0722717 0'); // 设置材质为一个自发光材质,并指定发光颜色
  367. $materials->emissionCfg = new lights\Emission( // 设置发光属性
  368. [
  369. 'gain' => "10 10 10", // 设置发光增益
  370. ]
  371. );
  372. $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
  373. $obj->setMaterial($materials); // 为 櫈色灯光 指定一个自发光材质
  374. $scene->registerObjects($obj);
  375. // 三、创建相机
  376. $camera = new camera\Perspective( // 创建一个相机
  377. [
  378. 'autovolumeEnable' => 0, // 关闭自动体积效果
  379. 'lookatOrig' => "-3.197486 -4.560584 0.8914337", // 视点坐标位置
  380. 'lookatTarget' => "-2.632151 -3.747173 0.7544713", // 目标点坐标位置
  381. 'up' => "0.0781663 0.1124666 0.9905763", // 旋转参数
  382. 'screenwindow' => "-1 1 -1 1", // 视野比例
  383. 'autofocusEnable' => 0, // 关闭自动对焦
  384. 'fieldofview' => 3.40608, // 视野角度大小
  385. 'cliphither' => 0.1 // 剪切成像起始位置,单位跟随系统
  386. ]
  387. );
  388. $camera->bokeh->blades = 0; // 模拟镜头模糊效果的光圈数
  389. $scene->registerCamera($camera); // 将相机注册到 scene 中
  390. echo $scene;
  391. $handle = fopen( "/home/yuanjiajia/Desktop/blender/blender_test/scene/scene.scn",'w+');
  392. fwrite($handle,$scene);
  393. fclose($handle);
  394. // 四、设置渲染参数
  395. $render = '';
  396. $renderEngine = new render\RenderEngine(); // 设置 渲染引擎 的配置参数,默认使用了 PATHOCL,意义着将使用 GPU 设备渲染
  397. $render .= $renderEngine;
  398. $openCL = new render\OpenCL(); // 设置 GPU 渲染参数,这里使用一个默认的参数
  399. $render .= $openCL;
  400. $path = new render\Path(); // 设置 光线跟踪 参数,这里使用一个默认的参数
  401. $render .= $path;
  402. $sampler = new render\Sampler(); // 设置 采样器 配置参数,默认使用 Sobol 类型的自适应采样器
  403. $sampler->sampling->superSampling = render\Sobol::POW_TWO_SIX; // 设置采样基数的倍数
  404. $render .= $sampler;
  405. $lightStrategy = new render\LightStrategy(); // 设置 灯光策略 类型,默认使用 LOG_POWER 类型
  406. $render .= $lightStrategy;
  407. $filesaver = new render\FileSaver(); // 设置 文件储存格式 配置参数
  408. $render .= $filesaver;
  409. $batch = new render\Batch(); // 设置 渲染终止 参数,
  410. $batch->halttime = 600; // 设置 渲染 超时参数,
  411. $render .= $batch;
  412. $scene = new render\Scene(); // 设置 场景属性 参数
  413. $render .= $scene;
  414. $film = new render\Film(); // 添加一个渲染胶片
  415. $film->width = 3000; // 设置渲染胶片宽度,单位像素
  416. $film->heigth = 3000; // 设置渲染胶片宽度,单位像素
  417. $img = new render\Image(); // 添加一个图像输出
  418. $img->effect = [new render\effect\Pretreatment(),new render\effect\ToneMapLinear(),new render\effect\CammaCorrection()];
  419. // 为该图像添加效果管线
  420. $film->addImage($img); // 将该图像输出添加到渲染胶片
  421. $film->addImage(new render\Image(['type' => render\Image::TYPE_OBJECT_ID])); // 为渲染胶片添加一个 通道图类型 的图像输出
  422. $film->addImage(new render\Image(['type' => render\Image::TYPE_RGBA]));
  423. $img = new render\Image(); // 添加一个图像输出,使用默认参数
  424. $img->effect[] = new render\effect\NoiseReducerOIDN(); // 添加降噪效果管线,使用默认参数
  425. $img->effect[] = new render\effect\Pretreatment(); //
  426. $img->effect[] = new render\effect\ToneMapLinear(); // 添加一亮度效果管线,使用默认参数
  427. $img->effect[] = new render\effect\Synthesis(); // 添加一个合成效果管线,使用默认参数
  428. $img->effect[] = new render\effect\BackgroundImg( // 添加一个背景图像,使用默认参数
  429. [
  430. 'file' => "./纯白242.png"
  431. ]
  432. );
  433. $img->effect[] = new render\effect\CammaCorrection(); // 添加一个 gamma 校正,,使用默认参数
  434. $film->addImage($img); // 将该图像输出添加到渲染胶片
  435. $render .= $film;
  436. echo $render ;
  437. $handle = fopen( "/home/yuanjiajia/Desktop/blender/blender_test/scene/render.cfg",'w+');
  438. fwrite($handle,$render);
  439. fclose($handle);
  440. $result = null;
  441. $var = null;
  442. $cmd = 'luxcoreconsole -o /home/yuanjiajia/Desktop/blender/blender_test/scene/render.cfg -f /home/yuanjiajia/Desktop/blender/blender_test/scene/scene.scn';
  443. exec($cmd, $result, $var);
  444. ?>