From 4193e93baeb0105416dde8fc28689b4cd05d8b91 Mon Sep 17 00:00:00 2001 From: yuanjiajia <1139393632@qq.com> Date: Wed, 2 Mar 2022 19:32:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9B=9B=E4=B8=AA=E7=BA=B9?= =?UTF-8?q?=E7=90=86=E7=9B=B8=E5=85=B3=E7=B1=BB=E6=96=87=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E2=80=9Cprint.php=E2=80=9D=E7=B1=BB?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E5=85=B6=E4=BB=96=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E6=9E=84=E9=80=A0=E5=87=BD=E6=95=B0?= =?UTF-8?q?=EF=BC=8C=E8=A7=A3=E5=86=B3=E5=B5=8C=E5=A5=97=E7=B1=BB=E5=90=8C?= =?UTF-8?q?=E5=90=8D=E5=B1=9E=E6=80=A7=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=BC=9A=E5=BE=97=E5=88=B0=E7=9B=B8=E5=90=8C=E5=80=BC?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/print.php | 68 +++++++----- src/scene/light/LigthBase.php | 1 - src/scene/materials/Disney.php | 7 +- src/scene/materials/Glass.php | 2 - src/scene/materials/Glossy.php | 4 +- src/scene/materials/Metal.php | 13 ++- src/scene/materials/Mix.php | 2 - src/scene/materials/NullMaterial.php | 2 - src/scene/materials/Roughmatte.php | 2 - .../materials/{ => emission}/Emission.php | 0 .../materials/{ => emission}/Visibility.php | 0 src/scene/objects/Objects.php | 5 + src/scene/render/Batch.php | 8 +- src/scene/render/Film.php | 16 ++- src/scene/render/Path.php | 9 +- src/scene/render/Sampler.php | 2 +- src/scene/render/cache/LightStrategy.php | 7 +- src/scene/render/cache/PhotonGI.php | 9 +- src/scene/texture/map/Clouds.php | 79 +++++++++++++ src/scene/texture/{ => map}/ImageMap.php | 14 ++- src/scene/texture/mapping/Mapping.php | 105 ++++++++++++++++-- src/scene/texture/mapping/Triplanar.php | 52 +++++++++ src/scene/texture/transform/NormalMap.php | 38 +++++++ 23 files changed, 360 insertions(+), 85 deletions(-) rename src/scene/materials/{ => emission}/Emission.php (100%) rename src/scene/materials/{ => emission}/Visibility.php (100%) create mode 100644 src/scene/texture/map/Clouds.php rename src/scene/texture/{ => map}/ImageMap.php (75%) create mode 100644 src/scene/texture/mapping/Triplanar.php create mode 100644 src/scene/texture/transform/NormalMap.php diff --git a/examples/print.php b/examples/print.php index b558480..21a19ff 100644 --- a/examples/print.php +++ b/examples/print.php @@ -4,6 +4,7 @@ namespace Blobt\Luxcore\scene; use Blobt\Luxcore\scene\materials; +use Blobt\Luxcore\scene\materials\Emission; use Blobt\Luxcore\scene\objects; use Blobt\Luxcore\scene\render; use Blobt\Luxcore\scene\texture; @@ -15,44 +16,43 @@ include dirname(dirname(__FILE__)) . "/vendor/autoload.php"; echo '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>渲染配置参数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'; echo "\n\n\n\n"; -/* + //设置打印 渲染引擎 的配置参数 -$renderEngine = new RenderEngine(); +$renderEngine = new render\RenderEngine(); echo $renderEngine; //设置打印GPU渲染设备的配置参数 -$openCL = new OpenCL(); +$openCL = new render\OpenCL(); echo $openCL; //设置打印光线跟踪的配置参数 -$path = new Path(); +$path = new render\Path( new render\PathDepth( ['total'=>24,'glossy'=>12] ) ); echo $path; //设置打印 采样器 配置参数 -$sampler = new Sampler(); +$sampler = new render\Sampler(); echo $sampler; //设置打印 灯光策略 配置参数 -$lightStrategy = new LightStrategy(); +$lightStrategy = new render\LightStrategy(); echo $lightStrategy; //设置打印 文件储存格式 配置参数 -$filesaver = new FileSaver(); +$filesaver = new render\FileSaver(); echo $filesaver; //设置打印 渲染终止 配置参数 -$batch = new Batch(); +$batch = new render\Batch(); echo $batch; //设置打印 场景属性 配置参数 -$scene = new Scene(); +$scene = new render\Scene(); echo $scene; - //设置打印 “胶片” 配置参数 -$film = new render\Film();//添加一个胶片, +$film = new render\Film( new render\NoiseEstimation(),new render\Filter() );//添加一个胶片, $img = new render\Image(); $img->effect = [new render\effect\Pretreatment(),new render\effect\ToneMapLinear(),new render\effect\CammaCorrection()]; @@ -68,7 +68,6 @@ $film->addImage($img); echo $film; -*/ @@ -84,26 +83,39 @@ $scene = new Scene();//创建一个场景, //添加第一个模型 +$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' ] ); //创建一个的模型 + + +$baseColor = new texture\map\Clouds( new texture\mapping\Mapping() ); +$bump = new texture\map\ImageMap( new texture\mapping\Mapping() ); +$ior = new texture\map\ImageMap( new texture\mapping\Mapping() ); -$bumpMap = new texture\ImageMap(); -$baseColorMap = new texture\ImageMap(); -$metallicMap = new texture\ImageMap(); +$baseColor = $scene->addTexture($baseColor); +$bump = $scene->addTexture($bump); +$ior = $scene->addTexture($ior); -$material1 = new materials\Disney(); //创建一个 Disney 材质 -$material2 = new materials\Metal(); //创建一个 Metal 材质 -$material1 = $scene->addMaterial($material1); //将材质存入材质数组,并获得其键名 -$material2 = $scene->addMaterial($material2); //将材质存入材质数组,并获得其键名 +$disney = new materials\Disney(); //创建一个 Disney 材质 +$disney->setBaseColor($baseColor); +$disney->setBumptex($bump); +$disney->setFilmior($ior); +$disney = $scene->addMaterial($disney); //将材质存入材质数组,并获得其键名 -$mix = new materials\Mix(); //创建 Mix 材质, -$mix->material1 = $material1; //为材质通道1 指定一个键名 -$mix->material2 = $material2; //为材质通道2 指定一个键名 -$mix->amount = 0.6; //指定混合系数为 0.6 -$mix = $scene->addMaterial($mix); //将材质存入材质数组,并获得其键名 -$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' ] ); //创建一个的模型, -$obj->material = $mix; //为模型的材属性 指定一个键名 +$metal = new materials\Metal(); //创建一个 Metal 材质 +$metal->setRefraction($baseColor); +$metal->setBumptex($bump); +$metal = $scene->addMaterial($metal); //将材质存入材质数组,并获得其键名 -$scene->addObjects($obj); //将模型添加到场景中 +$mix = new materials\Mix(); //创建 Mix 材质, +$mix->setMaterial1($disney); //为材质通道1 指定一个键名 +$mix->setMaterial2($metal); //为材质通道2 指定一个键名 +$mix->setAmount($baseColor); //指定混合系数为 0.6 +$mix = $scene->addMaterial($mix); //将材质存入材质数组,并获得其键名 + + +$obj->setMaterial($mix) ; //为模型的材属性 指定一个键名 + +$scene->addObjects($obj); //将模型添加到场景中 /* @@ -113,8 +125,10 @@ $obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => $obj->material = new materials\Metal( ['fresnel' => "2517393611944Fresnel"] ); //为模型创建一个 金属 类型的材质 $scene->addObject($obj); //将模型添加到场景中 + */ echo $scene; + ?> diff --git a/src/scene/light/LigthBase.php b/src/scene/light/LigthBase.php index 3d636bf..82f1f4e 100644 --- a/src/scene/light/LigthBase.php +++ b/src/scene/light/LigthBase.php @@ -8,7 +8,6 @@ use Blobt\Luxcore\core\Base; class LightBase extends BaseCfg { - public function __construct($config = []) { $this->id = Scene::createID(); diff --git a/src/scene/materials/Disney.php b/src/scene/materials/Disney.php index 66ce00e..93dd962 100644 --- a/src/scene/materials/Disney.php +++ b/src/scene/materials/Disney.php @@ -95,12 +95,14 @@ class Disney extends MaterialsBase */ public $bumptex; + /** + * @param $emissio + * @param $visibility + */ public function __construct($config = []) { $this->type = self::TYPE_DISNEY; $this->id = Scene::createID(); - $this->emissionCfg = new Emission($config); - $this->visibility = new Visibility($config); Base::__construct($config); } @@ -189,7 +191,6 @@ class Disney extends MaterialsBase $this->bumptex = $color; } - } ?> diff --git a/src/scene/materials/Glass.php b/src/scene/materials/Glass.php index 008eb8b..b03a946 100644 --- a/src/scene/materials/Glass.php +++ b/src/scene/materials/Glass.php @@ -81,8 +81,6 @@ class Glass extends MaterialsBase { $this->type = self::TYPE_GLASS; $this->id = Scene::createID(); - $this->emissionCfg = new Emission($config); - $this->visibility = new Visibility($config); Base::__construct($config); } diff --git a/src/scene/materials/Glossy.php b/src/scene/materials/Glossy.php index e9794a9..192070a 100644 --- a/src/scene/materials/Glossy.php +++ b/src/scene/materials/Glossy.php @@ -69,8 +69,6 @@ class Glossy extends MaterialsBase { $this->type = self::TYPE_GLOSSY; $this->id = Scene::createID(); - $this->emissionCfg = new Emission($config); - $this->visibility = new Visibility($config); Base::__construct($config); } @@ -133,7 +131,7 @@ class Glossy extends MaterialsBase { $this->multibounce = false; } - + } ?> diff --git a/src/scene/materials/Metal.php b/src/scene/materials/Metal.php index f0bb47a..2aa8441 100644 --- a/src/scene/materials/Metal.php +++ b/src/scene/materials/Metal.php @@ -9,6 +9,11 @@ class Metal extends MaterialsBase const TYPE_METAL = 'matal'; + /** + * @var string 反射颜色,一个小数色值,或是一个textures(贴图数组)中的某个键名 + */ + public $kr = '0.7 0.7 0.7'; + /** * @var string 菲列尔参数,一个textures(贴图数组)中的某个键名,只能是“fresnelconst(预设的菲列尔参数)”、 * “fresnelcolor(颜色的菲列尔)”两个类型的帖图。 @@ -44,11 +49,15 @@ class Metal extends MaterialsBase { $this->type = self::TYPE_METAL; $this->id = Scene::createID(); - $this->emissionCfg = new Emission($config); - $this->visibility = new Visibility($config); Base::__construct($config); } + public function setRefraction($color) + { + $this->kr = $color; + } + + public function setFresnel($color) { $this->fresnel = $color; diff --git a/src/scene/materials/Mix.php b/src/scene/materials/Mix.php index 1ea4c04..e03b157 100644 --- a/src/scene/materials/Mix.php +++ b/src/scene/materials/Mix.php @@ -32,8 +32,6 @@ class Mix extends MaterialsBase { $this->type = self::TYPE_MIX; $this->id = Scene::createID(); - $this->emissionCfg = new Emission($config); - $this->visibility = new Visibility($config); Base::__construct($config); } diff --git a/src/scene/materials/NullMaterial.php b/src/scene/materials/NullMaterial.php index 860a94c..b006cef 100644 --- a/src/scene/materials/NullMaterial.php +++ b/src/scene/materials/NullMaterial.php @@ -28,8 +28,6 @@ class NullMaterial extends MaterialsBase { $this->type = self::TYPE_NULL; $this->id = Scene::createID(); - $this->emissionCfg = new Emission($config); - $this->visibility = new Visibility($config); Base::__construct($config); } diff --git a/src/scene/materials/Roughmatte.php b/src/scene/materials/Roughmatte.php index dcf12d3..c92f7f8 100644 --- a/src/scene/materials/Roughmatte.php +++ b/src/scene/materials/Roughmatte.php @@ -38,8 +38,6 @@ class Roughmatte extends MaterialsBase { $this->type = self::TYPE_ROUGHMATTE; $this->id = Scene::createID(); - $this->emissionCfg = new Emission($config); - $this->visibility = new Visibility($config); Base::__construct($config); } diff --git a/src/scene/materials/Emission.php b/src/scene/materials/emission/Emission.php similarity index 100% rename from src/scene/materials/Emission.php rename to src/scene/materials/emission/Emission.php diff --git a/src/scene/materials/Visibility.php b/src/scene/materials/emission/Visibility.php similarity index 100% rename from src/scene/materials/Visibility.php rename to src/scene/materials/emission/Visibility.php diff --git a/src/scene/objects/Objects.php b/src/scene/objects/Objects.php index 4f4a83a..5eff180 100644 --- a/src/scene/objects/Objects.php +++ b/src/scene/objects/Objects.php @@ -39,6 +39,11 @@ class Objects extends BaseCfg Base::__construct($config); } + public function setMaterial($material) + { + $this->material = $material; + } + } ?> diff --git a/src/scene/render/Batch.php b/src/scene/render/Batch.php index 702bd5f..da19c8a 100644 --- a/src/scene/render/Batch.php +++ b/src/scene/render/Batch.php @@ -18,7 +18,7 @@ class Batch extends BaseCfg public $halttime = 0; /** - * @var float 噪波阈值,(取值:浮点型色值) + * @var float 噪波阈值,(取值:浮点型色值),如果需要使噪波阈值,这里需要设一个参数,默认为0.02 */ public $haltthreshold; @@ -27,12 +27,6 @@ class Batch extends BaseCfg */ public $haltthresholdcfg; - public function useNoiseThreshold($config= []) - { - $this->haltthresholdcfg = new HaltThresHold($config); - $this->haltthreshold = 0.02; - } - } ?> diff --git a/src/scene/render/Film.php b/src/scene/render/Film.php index 6dd53f7..28ca8f9 100644 --- a/src/scene/render/Film.php +++ b/src/scene/render/Film.php @@ -54,16 +54,14 @@ class Film extends BaseCfg public $outputs = []; /** - * 实例 NoiseEstimation类、filter类的两个对象,配置渲染器默认的输出参数”; + * @param object $noiseEstimation 必须传入一个 NoiseEstimationod类对象 + * @param object $filter 如果需要设置推荐一个默认的参数,则同时传入一个 Filter类对象 */ - public function __construct($config = []) - { - - $this->noiseEstimation = new NoiseEstimation($config); - $this->filter = new Filter($config); - - Base::__construct($config); - + public function __construct( NoiseEstimation $noiseEstimation,Filter $filter = null,$config = []) + { + $this->noiseEstimation = $noiseEstimation; + $this->filter = $filter; + Base::__construct($config); } public function addImage( object $object ) diff --git a/src/scene/render/Path.php b/src/scene/render/Path.php index d2f1efe..59e1f6b 100644 --- a/src/scene/render/Path.php +++ b/src/scene/render/Path.php @@ -43,12 +43,13 @@ class Path extends BaseCfg /** - * 实例 PathDepth类、HybridBackforWard类的两个对象 + * @param object $pathDepth 必须传入一个 PathDepth类对象 + * @param object $hybridBackforWard 如果需要设置推荐一个默认的参数,则同时传入一个 HybridBackforWard类对象 */ - public function __construct($config = []) + public function __construct(PathDepth $pathDepth,HybridBackforWard $hybridBackforWard = null,$config = []) { - $this->pathDepth = new PathDepth($config); - $this->hybridBackforWard= new HybridBackforWard($config); + $this->pathDepth = $pathDepth; + $this->hybridBackforWard= $hybridBackforWard; Base::__construct($config); } diff --git a/src/scene/render/Sampler.php b/src/scene/render/Sampler.php index 619f34e..f5d61a3 100644 --- a/src/scene/render/Sampler.php +++ b/src/scene/render/Sampler.php @@ -38,7 +38,7 @@ class Sampler extends BaseCfg */ public function __construct($config = []) { - $this->sobol = new Sobol($config); + $this->sobol = new Sobol(); Base::__construct($config); } diff --git a/src/scene/render/cache/LightStrategy.php b/src/scene/render/cache/LightStrategy.php index 11d9710..45ee9d7 100644 --- a/src/scene/render/cache/LightStrategy.php +++ b/src/scene/render/cache/LightStrategy.php @@ -38,10 +38,13 @@ class LightStrategy extends render\LightStrategy */ public $entry; - public function __construct($config = []) + /** + * @param object $entry 必须传入一个 Entry类对象 + */ + public function __construct(Entry $entry,$config = []) { $this->type = self::TYPE_DLS_CACHE; - $this->entry = new Entry($config); + $this->entry = $entry; Base::__construct($config); } diff --git a/src/scene/render/cache/PhotonGI.php b/src/scene/render/cache/PhotonGI.php index eb15e23..6206e63 100644 --- a/src/scene/render/cache/PhotonGI.php +++ b/src/scene/render/cache/PhotonGI.php @@ -38,12 +38,13 @@ class PhotonGI extends BaseCfg public $caustic; /** - * 实例 Indirect 类、Caustic类的两个对象 + * @param object $indirect 必须传入一个 Indirect类对象 + * @param object $caustic 必须传入一个 Caustic类对象 */ - public function __construct($config = []) + public function __construct(Indirect $indirect,Caustic $caustic,$config = []) { - $this->indirect = new Indirect($config); - $this->caustic = new Caustic($config); + $this->indirect = $indirect; + $this->caustic = $caustic; Base::__construct($config); } diff --git a/src/scene/texture/map/Clouds.php b/src/scene/texture/map/Clouds.php new file mode 100644 index 0000000..4692c54 --- /dev/null +++ b/src/scene/texture/map/Clouds.php @@ -0,0 +1,79 @@ +id = Scene::createID(); + $this->mapping = $mapping; + $this->type = self::TYPE_BLENDER_CLOUDS; + Base::__construct($config); + } + +} + +?> diff --git a/src/scene/texture/ImageMap.php b/src/scene/texture/map/ImageMap.php similarity index 75% rename from src/scene/texture/ImageMap.php rename to src/scene/texture/map/ImageMap.php index 643048e..376ed96 100644 --- a/src/scene/texture/ImageMap.php +++ b/src/scene/texture/map/ImageMap.php @@ -1,9 +1,10 @@ id = Scene::createID(); - $this->mapping = new mapping\Mapping(); + $this->mapping = $mapping; + $this->type = self::TYPE_IMAGEMAP; Base::__construct($config); } + } ?> diff --git a/src/scene/texture/mapping/Mapping.php b/src/scene/texture/mapping/Mapping.php index fe7a916..99137dd 100644 --- a/src/scene/texture/mapping/Mapping.php +++ b/src/scene/texture/mapping/Mapping.php @@ -6,36 +6,121 @@ use Blobt\Luxcore\scene\BaseCfg; class Mapping extends BaseCfg { + /** + * 以模型的UV坐标,调整贴图变换参数的类型 + */ + const TYPE_UVMAPPING2D = 'uvmapping2d'; + + /** + * 以模型的UV坐标,调整贴图随机变换参数的类型 + */ + const TYPE_UVRANDOMMAPPING2D = 'uvrandommapping2d'; + + /** + * 以模型的本地坐标,调整贴图三维变换参数的类型 + */ + const TYPE_LOCALMAPPING3D = 'localmapping3d'; + + /** + * 以世界坐标,调整贴图三维变换参数的类型 + */ + const TYPE_GLOBALMAPPING3D = 'globalmapping3d'; + + /** + * 以模型的本地坐标,调整贴图三维随机变换参数的类型 + */ + const TYPE_LOCALRANDOMMAPPING3D = 'localrandommapping3d'; + + /** + * 以模型的UV坐标,调整贴图三维变换参数的类型 + */ + const TYPE_UVMAPPING3D = 'uvmapping3d'; /** * @var string 铺贴类型 */ public $type; + + //当坐标为UV时,以下参数才可设以置和输出 + /** + * @var integer UV通道,只有当坐标为UV时,参数才可设以置和输出 + */ + public $uvindex; + + + //当铺贴类型属于随机时,以下参数才可设以置和输出 /** - * @var integer 当前贴图的ID号(取值:大于0的整数) + * @var string 随机种子类型,当铺贴类型为随机时,参数才可设以置和输出 */ - public $id; + public $seedType; /** - * @var string 贴图缩放参数 + * @var integer 当随机种类型为 object_id_offset时,可以设置为大于等于的整数,否则只能为0,当铺贴类型为随机时,参数才可设以置和输出 */ - public $uvscale = '1 -1'; + public $objectidoffsetValue; /** - * @var string 贴图偏移参数 + * @var integer TODO:具体作用尚未明确,(固定取值:0),当铺贴类型为随机时,参数才可设以置和输出 */ - public $uvdelta = '0 1'; + public $triangleaovIndex; + + + //当铺贴类型属于二维时,以下参数才可设以置和输出 + /** + * @var integer TODO:具体作用尚未明确,(固定取值:1),当铺贴类型为二维且随机时,参数才可设以置和输出 + */ + public $uvscaleUniform; + + /** + * @var string 贴图缩放参数,取值为 大于等于0 的小数,当铺贴类型为随机时,需要为两个轴方指定最大和最小值,如 ‘1 100 1 50’ + */ + public $uvscale; + + /** + * @var string 贴图偏移参数,取值为 一个自然数,正负号决定其偏移方向,当铺贴类型为随机时,需要为两个轴方指定最大和最小值,如 ‘1 100 1 50’ + */ + public $uvdelta; + + /** + * @var float 贴图旋转参数,取值为 0到小于360 的小数,当铺贴类型为随机时,需要指定为最大和最小值,如 ‘1 100’ + */ + public $rotation; + + + + //当铺贴类型属于三维时,以下参数才可设以置和输出 + /** + * @var string 贴图位置变换参数,只有当铺贴类型为三维且时,才可以设置和输出此参数 + */ + public $transformation; + + //当铺贴类型属于 三维 且 随机 且 非VU坐标 时,以下参数才可设以置和输出 + /** + * @var float 三个轴向的旋转参数,取值为 0到小于360 的小数,当最小值与最大值相等时,则关闭此三项参数的随机功能 + */ + public $xrotation; + public $yrotation; + public $zrotation; + + /** + * @var bool 指定是否等比缩放 + */ + public $xyzscaleUniform; /** - * @var float 贴图旋转参数 + * @var float 三个轴向的缩放参数,取值为 大于等于0 的小数,当最小值与最大值相等时,则关闭此三项参数的随机功能 */ - public $rotation = 0; + public $xscale; + public $yscale; + public $zscale; /** - * @var integer UV通道 + * @var float 三个轴向的偏移参数,取值为 一个自然数,正负号决定其偏移方向,当最小值与最大值相等时,则关闭此三项参数的随机功能 */ - public $uvindex = 0; + public $xtranslate; + public $ytranslate; + public $ztranslate; } diff --git a/src/scene/texture/mapping/Triplanar.php b/src/scene/texture/mapping/Triplanar.php new file mode 100644 index 0000000..bd79409 --- /dev/null +++ b/src/scene/texture/mapping/Triplanar.php @@ -0,0 +1,52 @@ +id = Scene::createID(); + $this->mapping = $mapping; + $this->type = self::TYPE_TRIPLANAR; + Base::__construct($config); + } + +} + +?> diff --git a/src/scene/texture/transform/NormalMap.php b/src/scene/texture/transform/NormalMap.php new file mode 100644 index 0000000..2f63717 --- /dev/null +++ b/src/scene/texture/transform/NormalMap.php @@ -0,0 +1,38 @@ +id = Scene::createID(); + $this->mapping = $mapping; + $this->type = self::TYPE_NORMALMAP; + Base::__construct($config); + } + +} + +?>