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.

175 lines
4.7 KiB

  1. <?php
  2. namespace Blobt\Luxcore\scene;
  3. use GuzzleHttp\Client;
  4. include dirname(dirname(__FILE__)) . "/vendor/autoload.php";
  5. const OPEN = true;
  6. const CLOSE = false;
  7. $client = new Client();
  8. $response = $client->get("deep3d.backend-api.dev.com/test/render-task");
  9. $resContents = $response->getBody()->getContents();
  10. $resData = json_decode($resContents);
  11. // 创建一个场景;
  12. $scene = new Scene();
  13. // 一、创建光场:
  14. // 1、创建 面片光001
  15. $materials = new materials\Matte();
  16. $materials->setBaseColor('0 0 0');
  17. $materials->setTransparencyShadow('1 1 1');
  18. $materials->setEmission('1 1 1');
  19. $scene->registerMaterial($materials);
  20. $obj = new objects\Objects();
  21. $obj->ply = './ply/FaceLight001.ply';
  22. $obj->setMaterial($materials);
  23. $scene->registerObjects($obj);
  24. // 2、创建 面片光002
  25. $materials = new materials\Matte();
  26. $materials->setBaseColor('0 0 0');
  27. $materials->setTransparencyShadow('1 1 1');
  28. $materials->setEmission('0 0 0');
  29. $materials->emissionCfg = new lights\Emission([
  30. 'gain' => "30 30 30",
  31. ]);
  32. $scene->registerMaterial($materials);
  33. $obj = new objects\Objects();
  34. $obj->ply = './ply/FaceLight002.ply';
  35. $obj->setMaterial($materials);
  36. $scene->registerObjects($obj);
  37. // 3、创建 面片光003
  38. $materials = new materials\Matte();
  39. $materials->setBaseColor('0 0 0');
  40. $materials->setTransparencyShadow('1 1 1');
  41. $materials->setEmission('1 1 1');
  42. $materials->emissionCfg = new lights\Emission([
  43. 'gain' => "50 50 50",
  44. ]);
  45. $scene->registerMaterial($materials);
  46. $obj = new objects\Objects();
  47. $obj->ply = './ply/FaceLight003.ply';
  48. $obj->setMaterial($materials);
  49. $scene->registerObjects($obj);
  50. // 4、创建 面片光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. 'gain' => "4 4 4",
  57. ]);
  58. $scene->registerMaterial($materials);
  59. $obj = new objects\Objects();
  60. $obj->ply = './ply/FaceLight004.ply';
  61. $obj->setMaterial($materials);
  62. $scene->registerObjects($obj);
  63. // 5、创建 面片光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. 'gain' => "10 10 10",
  70. ]);
  71. $scene->registerMaterial($materials);
  72. $obj = new objects\Objects();
  73. $obj->ply = './ply/FaceLight005.ply';
  74. $obj->setMaterial($materials);
  75. $scene->registerObjects($obj);
  76. // 6、创建 面片光006
  77. $materials = new materials\Matte();
  78. $materials->setBaseColor('0 0 0');
  79. $materials->setTransparencyShadow('1 1 1');
  80. $materials->setEmission('1 1 1');
  81. $materials->emissionCfg = new lights\Emission([
  82. 'gain' => "8 8 8",
  83. 'mapfile' => "./map/SD-037.exr",
  84. 'gamma' => 1,
  85. 'storage' => "float"
  86. ]);
  87. $scene->registerMaterial($materials);
  88. $obj = new objects\Objects();
  89. $obj->ply = './ply/FaceLight006.ply';
  90. $obj->setMaterial($materials);
  91. $scene->registerObjects($obj);
  92. // 7、创建 面片光000
  93. $materials = new materials\Matte();
  94. $materials->setBaseColor('0 0 0');
  95. $materials->setTransparencyShadow('1 1 1');
  96. $materials->setEmission('1 1 1');
  97. $materials->emissionCfg = new lights\Emission([
  98. 'gain' => "3.3 3.3 3.3",
  99. ]);
  100. $scene->registerMaterial($materials);
  101. $obj = new objects\Objects();
  102. $obj->ply = './ply/FaceLight000.ply';
  103. $obj->setMaterial($materials);
  104. $scene->registerObjects($obj);
  105. // 8、创建环境光
  106. $light = new lights\env\HdrImage([
  107. 'gain' => "1.25 1.25 1.25",
  108. 'transformation' => "0.1736481 -0.9848078 0 0 -0.9848078 -0.1736481 0 0 0 0 1 0 0 0 0 1",
  109. 'file' => "./map/env.png",
  110. 'gamma' => 1,
  111. 'storage' => "byte"
  112. ]);
  113. $light->id = 0;
  114. $scene->registerLight($light);
  115. // 9、创建地面模型
  116. $mapping = new texture\mapping\Mapping();
  117. $mapping->useUVMapping2d(0, "0", "0.4 -0.966", "0.3 0.983");
  118. $texture = new texture\procedural\ImageMap([
  119. 'file' => "./map/方形阴影遮照.png",
  120. 'gain' => 0.6,
  121. 'gamma' => 1,
  122. ]);
  123. $texture->mapping = $mapping;
  124. $scene->registerTexture($texture);
  125. $materials = new materials\Disney([
  126. 'shadowcatcherEnable' => OPEN,
  127. 'photongiEnable' => CLOSE
  128. ]);
  129. $materials->setBaseColor('1 1 1');
  130. $materials->setTransparencyFront($texture);
  131. $materials->setTransparencyBack($texture);
  132. $scene->registerMaterial($materials);
  133. $obj = new objects\Objects();
  134. $obj->ply = './ply/ground.ply';
  135. $obj->setMaterial($materials);
  136. $scene->registerObjects($obj);
  137. // 二、添加要渲染的模型
  138. $loadModel = $resData->data->scene->model;
  139. $loadCamera = $resData->data->scene->camera;
  140. foreach($loadModel->childsParams as $childParams){
  141. print_r($childParams);
  142. }
  143. ?>