From 10e53285eccf6c3ceb2d4074eb82188c25c8ebe0 Mon Sep 17 00:00:00 2001 From: yuanjiajia <1139393632@qq.com> Date: Fri, 18 Feb 2022 12:44:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E2=80=9C=E2=80=9D?= =?UTF-8?q?=E3=80=81=E2=80=9CImage=E2=80=9D=E4=B8=A4=E4=B8=AA=E6=96=87?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E2=80=9C=E2=80=9D=E9=87=8D=20=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E4=B8=BA=E2=80=9C=E2=80=9D=E5=B9=B6=E4=B8=94=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E2=80=9Cindex=E2=80=9D=E5=B1=9E=E6=80=A7=EF=BC=8C?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BA=86=E2=80=9CImageSaverNumber.php?= =?UTF-8?q?=E2=80=9D=E7=B1=BB=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/print.php | 14 ++++---- src/scene/BaseCfg.php | 15 +++++--- src/scene/Film.php | 13 +++---- .../{ImageSaverBase.php => ImageSaver.php} | 26 +++++++------- src/scene/file/ImageSaverNumber.php | 36 ------------------- 5 files changed, 38 insertions(+), 66 deletions(-) rename src/scene/file/{ImageSaverBase.php => ImageSaver.php} (88%) delete mode 100644 src/scene/file/ImageSaverNumber.php diff --git a/examples/print.php b/examples/print.php index 9d12938..426a787 100644 --- a/examples/print.php +++ b/examples/print.php @@ -16,7 +16,6 @@ echo $openCL; //设置打印光线跟踪的配置参数 $path = new Path(); -$path->photonGI = new cache\PhotonGI(); echo $path; //设置打印 采样器 配置参数 @@ -24,7 +23,7 @@ $sampler = new Sampler(); echo $sampler; //设置打印 灯光策略 配置参数 -$lightStrategy = new cache\LightStrategy(); +$lightStrategy = new LightStrategy(); echo $lightStrategy; //设置打印 文件储存格式 配置参数 @@ -33,21 +32,22 @@ echo $filesaver; //设置打印 渲染终止 配置参数 $batch = new Batch(); -$batch->useNoiseThreshold(); echo $batch; //设置打印 场景属性 配置参数 $scene = new Scene(); echo $scene; + + //设置打印 “胶片” 配置参数 $film = new Film(); -$film->outputs[] = new file\ImageSaverBase(['type' => file\ImageSaverBase::TYPE_RGBA ]); -$film->outputs[] = new file\ImageSaverBase(['type' => file\ImageSaverBase::TYPE_MATERIAL_ID ]); +$film->outputs[] = new file\ImageSaver(['type' => file\ImageSaver::TYPE_RGBA ]); +$film->outputs[] = new file\ImageSaver(['type' => file\ImageSaver::TYPE_MATERIAL_ID ]); -$film->outputs[] = new file\ImageSaverNumber(['index' => 2 ]); -$film->imagepipelines['002'] = [new effect\NoiseReducerOIDN(),new effect\Pretreatment(),new effect\ToneMapLinear(),new effect\AnalogFilmSimulation(),new effect\CammaCorrection()]; +$film->outputs[] = new file\ImageSaver(['index' => 5 ]); +$film->imagepipelines[5] = [new effect\NoiseReducerOIDN(),new effect\Pretreatment(),new effect\ToneMapLinear(),new effect\AnalogFilmSimulation(),new effect\CammaCorrection()]; echo $film; diff --git a/src/scene/BaseCfg.php b/src/scene/BaseCfg.php index 10f413f..f744126 100644 --- a/src/scene/BaseCfg.php +++ b/src/scene/BaseCfg.php @@ -53,8 +53,7 @@ class BaseCfg extends Base $value = $item->getValue($this); if (is_string($value)) { - if( count(explode(" ", $value)) != 3 - || in_array(false,array_map('is_numeric',explode(" ", $value))) ) + if( count(explode(" ", $value)) != 3 || in_array(false,array_map('is_numeric',explode(" ", $value))) ) { $ret .= "{$className}.{$name} = \"{$value}\"\n"; } @@ -88,8 +87,16 @@ class BaseCfg extends Base else if(is_array($value)) { foreach(StringHelper::arrayToString($value) as $value) - { - $ret .= "{$className}.{$name}.{$value}\n"; + { + if( $name == 'imagepipelines' ) + { + $value = sprintf("%03d", substr($value,0,strpos($value,'.'))).substr($value,strpos($value,'.')); + $ret .= "{$className}.{$name}.{$value}\n"; + } + else + { + $ret .= "{$className}.{$name}.{$value}\n"; + } } } else diff --git a/src/scene/Film.php b/src/scene/Film.php index d9b7b37..2a7737f 100644 --- a/src/scene/Film.php +++ b/src/scene/Film.php @@ -61,14 +61,15 @@ class Film extends BaseCfg $this->noiseEstimation = new NoiseEstimation($config); $this->filter = new Filter($config); - $this->outputs[] = new file\ImageSaverNumber(['index' => 0]); - $this->imagepipelines['000'] = [new effect\Pretreatment(),new effect\ToneMapLinear(),new effect\CammaCorrection()]; + $this->outputs[] = new file\ImageSaver(['index' => 0]); + $this->imagepipelines[0] = [new effect\Pretreatment(),new effect\ToneMapLinear(),new effect\CammaCorrection()]; - $this->outputs[] = new file\ImageSaverBase(['type' => 'ALBEDO']); - $this->outputs[] = new file\ImageSaverBase(['type' => 'AVG_SHADING_NORMAL']); + $this->outputs[] = new file\ImageSaver(['type' => 'ALBEDO']); + $this->outputs[] = new file\ImageSaver(['type' => 'AVG_SHADING_NORMAL']); - $this->outputs[] = new file\ImageSaverNumber(['index' => 1]); - $this->imagepipelines['001'] = [new effect\NoiseReducerOIDN(),new effect\Pretreatment(),new effect\ToneMapLinear(),new effect\CammaCorrection()]; + $this->outputs[] = new file\ImageSaver(['index' => 1]); + $this->imagepipelines[1] = [new effect\NoiseReducerOIDN(),new effect\Pretreatment(),new effect\ToneMapLinear(),new effect\CammaCorrection()]; + Base::__construct($config); } diff --git a/src/scene/file/ImageSaverBase.php b/src/scene/file/ImageSaver.php similarity index 88% rename from src/scene/file/ImageSaverBase.php rename to src/scene/file/ImageSaver.php index 60ddb1a..cb17b75 100644 --- a/src/scene/file/ImageSaverBase.php +++ b/src/scene/file/ImageSaver.php @@ -4,7 +4,7 @@ namespace Blobt\Luxcore\scene\file; use Blobt\Luxcore\core\Base; use Blobt\Luxcore\scene\BaseCfg; -class ImageSaverBase extends BaseCfg +class ImageSaver extends BaseCfg { /** @@ -132,6 +132,11 @@ class ImageSaverBase extends BaseCfg */ public $filename; + /** + * @var integer 图像输出序号,当一幅图像需要管线处理时,处理管线依据此参数处理对应的图像(取值大于0的整数) + */ + public $index = null; + /** * 设置默认的图像输出文件名及格式 */ @@ -141,27 +146,22 @@ class ImageSaverBase extends BaseCfg Base::__construct($config); if( in_array($this->type,self::PNG ) ) { - $this->filename = "{$this->type}.png"; + if($this->index == null) $this->filename = "{$this->type}.png"; + else $this->filename = "{$this->type}_{$this->index}.png"; } else if ( in_array($this->type,self::EXR) ) { - $this->filename = "{$this->type}.exr"; + if($this->index == null) $this->filename = "{$this->type}.exr"; + else $this->filename = "{$this->type}_{$this->index}.exr"; } else { - $this->filename = "{$this->type}.jpg"; + if($this->index == null) $this->filename = "{$this->type}.jpg"; + else $this->filename = "{$this->type}_{$this->index}.jpg"; } - + } - - /** - * 用户自定的图像输出文件名及格式 - */ - public function setFileName($nameStr) - { - $this->filename = $nameStr; - } } ?> diff --git a/src/scene/file/ImageSaverNumber.php b/src/scene/file/ImageSaverNumber.php deleted file mode 100644 index 9358ef0..0000000 --- a/src/scene/file/ImageSaverNumber.php +++ /dev/null @@ -1,36 +0,0 @@ -type,self::PNG ) ) - { - $this->filename = "{$this->type}_{$this->index}.png"; - } - else if ( in_array($this->type,self::EXR) ) - { - $this->filename = "{$this->type}_{$this->index}.exr"; - } - else - { - $this->filename = "{$this->type}_{$this->index}.jpg"; - } - - } -} - -?>