From 79f6e9d058045aab6d4cfed04ea48a1e203153a7 Mon Sep 17 00:00:00 2001 From: yuanjiajia <1139393632@qq.com> Date: Tue, 6 Jun 2023 16:27:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=B2=E6=9F=93=E6=B5=8B=E5=BC=8F=20?= =?UTF-8?q?=E6=A1=88=E4=BE=8B=20=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/renderTest.php | 88 +++++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 34 deletions(-) diff --git a/examples/renderTest.php b/examples/renderTest.php index 3eb030e..d051833 100644 --- a/examples/renderTest.php +++ b/examples/renderTest.php @@ -4,8 +4,28 @@ namespace Blobt\Luxcore\scene; +use Blobt\Luxcore\scene\lights\Emission; +use Blobt\Luxcore\scene\lights\env\HdrImage; use Blobt\Luxcore\scene\materials\Disney; +use Blobt\Luxcore\scene\materials\Matte; use Blobt\Luxcore\scene\objects\Objects; +use Blobt\Luxcore\scene\render\Batch; +use Blobt\Luxcore\scene\render\effect\BackgroundImg; +use Blobt\Luxcore\scene\render\effect\CammaCorrection; +use Blobt\Luxcore\scene\render\effect\NoiseReducerOIDN; +use Blobt\Luxcore\scene\render\effect\Pretreatment; +use Blobt\Luxcore\scene\render\effect\Synthesis; +use Blobt\Luxcore\scene\render\effect\ToneMapLinear; +use Blobt\Luxcore\scene\render\FileSaver; +use Blobt\Luxcore\scene\render\Film; +use Blobt\Luxcore\scene\render\Image; +use Blobt\Luxcore\scene\render\LightStrategy; +use Blobt\Luxcore\scene\render\OpenCL; +use Blobt\Luxcore\scene\render\Path; +use Blobt\Luxcore\scene\render\RenderEngine; +use Blobt\Luxcore\scene\render\Sampler; +use Blobt\Luxcore\scene\texture\mapping\Mapping; +use Blobt\Luxcore\scene\texture\procedural\ImageMap; use Blobt\Luxcore\utils\MatHelper; use GuzzleHttp\Client; use GuzzleHttp\RequestOptions; @@ -58,7 +78,7 @@ $sceneTemplatePath = dirname(dirname(__FILE__)) . "/sceneTemplate"; // 一、创建光场: // 1、创建 面片光001 -$material = new materials\Matte(); +$material = new Matte(); $material->setBaseColor('0 0 0'); $material->setTransparencyShadow('1 1 1'); $material->setEmission('1 1 1'); @@ -69,11 +89,11 @@ $obj->setMaterial($material); $scene->registerObjects($obj); // 2、创建 面片光002 -$material = new materials\Matte(); +$material = new Matte(); $material->setBaseColor('0 0 0'); $material->setTransparencyShadow('1 1 1'); $material->setEmission('0 0 0'); -$material->emissionCfg = new lights\Emission([ +$material->emissionCfg = new Emission([ 'gain' => "30 30 30", ]); $scene->registerMaterial($material); @@ -83,11 +103,11 @@ $obj->setMaterial($material); $scene->registerObjects($obj); // 3、创建 面片光003 -$material = new materials\Matte(); +$material = new Matte(); $material->setBaseColor('0 0 0'); $material->setTransparencyShadow('1 1 1'); $material->setEmission('1 1 1'); -$material->emissionCfg = new lights\Emission([ +$material->emissionCfg = new Emission([ 'gain' => "50 50 50", ]); $scene->registerMaterial($material); @@ -97,11 +117,11 @@ $obj->setMaterial($material); $scene->registerObjects($obj); // 4、创建 面片光004 -$material = new materials\Matte(); +$material = new Matte(); $material->setBaseColor('0 0 0'); $material->setTransparencyShadow('1 1 1'); $material->setEmission('0 0 0'); -$material->emissionCfg = new lights\Emission([ +$material->emissionCfg = new Emission([ 'gain' => "4 4 4", ]); $scene->registerMaterial($material); @@ -111,11 +131,11 @@ $obj->setMaterial($material); $scene->registerObjects($obj); // 5、创建 面片光005 -$material = new materials\Matte(); +$material = new Matte(); $material->setBaseColor('0 0 0'); $material->setTransparencyShadow('1 1 1'); $material->setEmission('1 1 1'); -$material->emissionCfg = new lights\Emission([ +$material->emissionCfg = new Emission([ 'gain' => "10 10 10", ]); $scene->registerMaterial($material); @@ -125,11 +145,11 @@ $obj->setMaterial($material); $scene->registerObjects($obj); // 6、创建 面片光006 -$material = new materials\Matte(); +$material = new Matte(); $material->setBaseColor('0 0 0'); $material->setTransparencyShadow('1 1 1'); $material->setEmission('1 1 1'); -$material->emissionCfg = new lights\Emission([ +$material->emissionCfg = new Emission([ 'gain' => "8 8 8", 'mapfile' => "./map/SD-037.exr", 'gamma' => 1, @@ -142,11 +162,11 @@ $obj->setMaterial($material); $scene->registerObjects($obj); // 7、创建 面片光000 -$material = new materials\Matte(); +$material = new Matte(); $material->setBaseColor('0 0 0'); $material->setTransparencyShadow('1 1 1'); $material->setEmission('1 1 1'); -$material->emissionCfg = new lights\Emission([ +$material->emissionCfg = new Emission([ 'gain' => "3.3 3.3 3.3", ]); $scene->registerMaterial($material); @@ -156,7 +176,7 @@ $obj->setMaterial($material); $scene->registerObjects($obj); // 8、创建环境光 -$light = new lights\env\HdrImage([ +$light = new HdrImage([ 'gain' => "1.25 1.25 1.25", 'transformation' => "0.1736481 -0.9848078 0 0 -0.9848078 -0.1736481 0 0 0 0 1 0 0 0 0 1", 'file' => "./map/env.png", @@ -167,9 +187,9 @@ $light->id = 0; $scene->registerLight($light); // 9、创建地面模型 -$mapping = new texture\mapping\Mapping(); +$mapping = new Mapping(); $mapping->useUVMapping2d(0, "0", "0.4 -0.966", "0.3 0.983"); -$texture = new texture\procedural\ImageMap([ +$texture = new ImageMap([ 'file' => "./map/方形阴影遮照.png", 'gain' => 0.6, 'gamma' => 1, @@ -243,25 +263,25 @@ $scene->registerCamera($camera); // 将相机注册 // 四、设置渲染参数 $render = ''; -$renderEngine = new render\RenderEngine(); // 设置 渲染引擎 的配置参数,默认使用了 PATHOCL,意义着将使用 GPU 设备渲染 +$renderEngine = new RenderEngine(); // 设置 渲染引擎 的配置参数,默认使用了 PATHOCL,意义着将使用 GPU 设备渲染 $render .= $renderEngine; -$openCL = new render\OpenCL(); // 设置 GPU 渲染参数,这里使用一个默认的参数 +$openCL = new OpenCL(); // 设置 GPU 渲染参数,这里使用一个默认的参数 $render .= $openCL; -$path = new render\Path(); // 设置 光线跟踪 参数,这里使用一个默认的参数 +$path = new Path(); // 设置 光线跟踪 参数,这里使用一个默认的参数 $render .= $path; -$sampler = new render\Sampler(); // 设置 采样器 配置参数,默认使用 Sobol 类型的自适应采样器 +$sampler = new Sampler(); // 设置 采样器 配置参数,默认使用 Sobol 类型的自适应采样器 $render .= $sampler; -$lightStrategy = new render\LightStrategy(); // 设置 灯光策略 类型,默认使用 LOG_POWER 类型 +$lightStrategy = new LightStrategy(); // 设置 灯光策略 类型,默认使用 LOG_POWER 类型 $render .= $lightStrategy; -$filesaver = new render\FileSaver(); // 设置 文件储存格式 配置参数 +$filesaver = new FileSaver(); // 设置 文件储存格式 配置参数 $render .= $filesaver; -$batch = new render\Batch(); // 设置 渲染终止 参数, +$batch = new Batch(); // 设置 渲染终止 参数, $batch->haltspp = 1000; // 设置 每像素 采样达 800 则终止渲染 // $batch->halttime = 2000; // 设置 渲染 超时参数, $render .= $batch; @@ -270,23 +290,23 @@ $sceneCfg = new render\Scene(); // 设置 场景属 $render .= $sceneCfg; -$film = new render\Film(); // 添加一个渲染胶片 +$film = new Film(); // 添加一个渲染胶片 $film->width = 3000; // 设置渲染胶片宽度,单位像素 $film->heigth = 3000; // 设置渲染胶片宽度,单位像素 -$img = new render\Image(); // 添加一个图像输出 -$img->effect = [new render\effect\Pretreatment(),new render\effect\ToneMapLinear(),new render\effect\CammaCorrection()]; +$img = new Image(); // 添加一个图像输出 +$img->effect = [new Pretreatment(),new ToneMapLinear(),new CammaCorrection()]; // 为该图像添加效果管线 $film->addImage($img); // 将该图像输出添加到渲染胶片 -$film->addImage(new render\Image(['type' => render\Image::TYPE_OBJECT_ID])); // 为渲染胶片添加一个 通道图类型 的图像输出 -$film->addImage(new render\Image(['type' => render\Image::TYPE_RGBA])); // 添加一个 透明底 的图像输出 +$film->addImage(new Image(['type' => Image::TYPE_OBJECT_ID])); // 为渲染胶片添加一个 通道图类型 的图像输出 +$film->addImage(new Image(['type' => Image::TYPE_RGBA])); // 添加一个 透明底 的图像输出 -$img = new render\Image(); // 添加一个图像输出,使用默认参数 -$img->effect[] = new render\effect\NoiseReducerOIDN(); // 添加降噪效果管线,使用默认参数 -$img->effect[] = new render\effect\Pretreatment(); // -$img->effect[] = new render\effect\ToneMapLinear(); // 添加一亮度效果管线,使用默认参数 -$img->effect[] = new render\effect\Synthesis(); // 添加一个合成效果管线,使用默认参数 -$img->effect[] = new render\effect\BackgroundImg( // 添加一个背景图像,使用默认参数 +$img = new Image(); // 添加一个图像输出,使用默认参数 +$img->effect[] = new NoiseReducerOIDN(); // 添加降噪效果管线,使用默认参数 +$img->effect[] = new Pretreatment(); // +$img->effect[] = new ToneMapLinear(); // 添加一亮度效果管线,使用默认参数 +$img->effect[] = new Synthesis(); // 添加一个合成效果管线,使用默认参数 +$img->effect[] = new BackgroundImg( // 添加一个背景图像,使用默认参数 [ 'file' => "./map/纯白242.png" ]