Browse Source

修复不能输出属性值为0或flase的参数字符串

master
yuanjiajia 3 years ago
parent
commit
4cf6c79d48
  1. 843
      examples/printScene.php
  2. 10
      src/scene/BaseCfg.php
  3. 4
      src/scene/Scene.php
  4. 2
      src/scene/camera/Perspective.php
  5. 21
      src/utils/StringHelper.php

843
examples/printScene.php

@ -13,431 +13,434 @@ const CLOSE = false;
$scene = new Scene(); // 创建一个场景 $scene = new Scene(); // 创建一个场景
// 一、创建光场:
// 1、创建 面片光001
$obj = new objects\Objects(); // 创建 面片光001 的实体
$obj->ply = './ply/面光.001.ply'; // 指定 面片光001 实体网格数据
$materials = new materials\Matte(); // 创建一个材质
$materials->setBaseColor('0 0 0'); // 设置材质的漫反射
$materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
$materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
$scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
$obj->setMaterial($materials); // 为 面片光001 指定一个自发光材质
$scene->registerObjects($obj); // 将 面片光001 注册到 scene 中
// 2、创建 面片光002
$obj = new objects\Objects(); // 创建 面片光002 的实体
$obj->ply = './ply/面光.002.ply'; // 指定 面片光002 实体网格数据
$materials = new materials\Matte(); // 创建一个材质
$materials->setBaseColor('0 0 0'); // 设置材质的漫反射
$materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
$materials->setEmission('0 0 0'); // 设置材质为一个自发光材质,并指定发光颜色
$materials->emissionCfg = new lights\Emission( // 设置发光属性
[
'gain' => "30 30 30", // 设置发光增益
]
);
$scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
$obj->setMaterial($materials); // 为 面片光002 指定一个自发光材质
$scene->registerObjects($obj); // 将 面片光002 注册到 scene 中
// 3、创建 面片光003
$obj = new objects\Objects(); // 创建 面片光003 的实体
$obj->ply = './ply/面光.003.ply'; // 指定 面片光003 实体网格数据
$materials = new materials\Matte(); // 创建一个材质
$materials->setBaseColor('0 0 0'); // 设置材质的漫反射
$materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
$materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
$materials->emissionCfg = new lights\Emission( // 设置发光属性
[
'gain' => "50 50 50", // 设置发光增益
]
);
$scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
$obj->setMaterial($materials); // 为 面片光003 指定一个自发光材质
$scene->registerObjects($obj); // 将 面片光003 注册到 scene 中
// 4、创建 面片光004
$obj = new objects\Objects(); // 创建 面片光004 的实体
$obj->ply = './ply/面光.004.ply'; // 指定 面片光004 实体网格数据
$materials = new materials\Matte(); // 创建一个材质
$materials->setBaseColor('0 0 0'); // 设置材质的漫反射
$materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
$materials->setEmission('0 0 0'); // 设置材质为一个自发光材质,并指定发光颜色
$materials->emissionCfg = new lights\Emission( // 设置发光属性
[
'gain' => "4 4 4", // 设置发光增益
]
);
$scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
$obj->setMaterial($materials); // 为 面片光004 指定一个自发光材质
$scene->registerObjects($obj); // 将 面片光004 注册到 scene 中
// 5、创建 面片光005
$obj = new objects\Objects(); // 创建 面片光005 的实体
$obj->ply = './ply/面光.005.ply'; // 指定 面片光005 实体网格数据
$materials = new materials\Matte(); // 创建一个材质
$materials->setBaseColor('0 0 0'); // 设置材质的漫反射
$materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
$materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
$materials->emissionCfg = new lights\Emission( // 设置发光属性
[
'gain' => "10 10 10", // 设置发光增益
]
);
$scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
$obj->setMaterial($materials); // 为 面片光005 指定一个自发光材质
$scene->registerObjects($obj); // 将 面片光005 注册到 scene 中
// 6、创建 面片光006
$obj = new objects\Objects(); // 创建 面片光006 的实体
$obj->ply = './ply/面光.006.ply'; // 指定 面片光006 实体网格数据
$materials = new materials\Matte(); // 创建一个材质
$materials->setBaseColor('0 0 0'); // 设置材质的漫反射
$materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
$materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
$materials->emissionCfg = new lights\Emission( // 设置发光属性
[
'gain' => "8 8 8", // 设置发光增益
'mapfile' => "SD-037.exr", // 加载一个光域文件
'gamma' => 1, // 设置校正光域文件的gamma值
'storage' => "float" // 声明光域文件表示色值的数据类型
]
);
$scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
$obj->setMaterial($materials); // 为 面片光006 指定一个自发光材质
$scene->registerObjects($obj); // 将 面片光006 注册到 scene 中
// 7、创建 面片光006
$obj = new objects\Objects(); // 创建 面片光 的实体
$obj->ply = './ply/面光.ply'; // 指定 面片光 实体网格数据
$materials = new materials\Matte(); // 创建一个材质
$materials->setBaseColor('0 0 0'); // 设置材质的漫反射
$materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
$materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
$materials->emissionCfg = new lights\Emission( // 设置发光属性
[
'gain' => "3.3 3.3 3.3", // 设置发光增益
]
);
$scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
$obj->setMaterial($materials); // 为 面片光 指定一个自发光材质
$scene->registerObjects($obj); // 将 面片光 注册到 scene 中
// 8、创建环境光
$light = new lights\env\HdrImage( // new 一个环境光对象
[
'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' => "env.png", // 加载一个全景图像文件
'gamma' => 1, // 设置一个校正全景图像文件的 gamma 值
'storage' => "byte" // 声明这个图像文件表示色值的数据类型
]
);
$scene->registerLight($light); // 将环境光注册到 scene 中
// 二、添加要渲染的模型
// 1、创建地面模型
$obj = new objects\Objects(); // 创建 地面 的实体
$obj->ply = './ply/地面.ply'; // 指定 地面 实体网格数据
$mapping = new texture\mapping\Mapping(); // 创建一个铺贴对象
$mapping->useUVMapping2d( // 使用"uvmapping2d"类型的铺贴对象
0, // uv通道
"0", // 旋转角度
"0.4 -0.966", // 缩放比例
"0.3 0.983" // 偏移量
);
$texture = new texture\procedural\ImageMap( // 创建一个纹理
[
'file' => "方形阴影遮照 (3).png", // 加载一个图像文件
'gain' => 0.6, // 设置颜色增益
'gamma' => 1, // 设置校正图像文件的gamma值
]
);
$texture->mapping = $mapping; // 将铺贴对象赋值给纹理的“mapping”属性
$scene->registerTexture($texture); // 将纹理注册到 scene 中
$materials = new materials\Disney( // 创建一个材质
[
'shadowcatcherEnable' => OPEN, // 设置为阴影捕捉器
'photongiEnable' => CLOSE // 关闭此材质的全局光缓存
]
);
$materials->setBaseColor('1 1 1'); // 设置材质的漫反射
$materials->setTransparencyFront($texture); // 将纹理设置为材质的正面透明度
$materials->setTransparencyBack($texture); // 将纹理设置为材质的背面透明度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 地面模型 的材质属性
$scene->registerObjects($obj); // 将 地面模型 注册到 scene 中
// 2、创建 刷毛003 模型
$obj = new objects\Objects(); // 创建 刷毛003 的实体
$obj->ply = './ply/刷毛003.ply'; // 指定 刷毛003 实体网格数据
$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"; // 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.233238 0.567919 0.654361' ); // 设置材质的漫反射
$materials->setSpecular('1'); // 设置材质的高光反射强度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 刷毛003 的材质属性
$scene->registerObjects($obj); // 将 刷毛003 注册到 scene 中
// 3、创建 刷毛002 模型
$obj = new objects\Objects(); // 创建 刷毛002 的实体
$obj->ply = './ply/刷毛002.ply'; // 指定 刷毛002 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.0739024 0.0739024 0.0739024' );// 设置材质的漫反射
$materials->setSpecular('1'); // 设置材质的高光反射强度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 刷毛002 的材质属性
$scene->registerObjects($obj); // 将 刷毛002 注册到 scene 中
// 3、创建 刷毛001 模型
$obj = new objects\Objects(); // 创建 刷毛001 的实体
$obj->ply = './ply/刷毛001.ply'; // 指定 刷毛001 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.857449 0.857449 0.857449' ); // 设置材质的漫反射
$materials->setSpecular('1'); // 设置材质的高光反射强度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 刷毛001 的材质属性
$scene->registerObjects($obj); // 将 刷毛001 注册到 scene 中
// 4、创建 牙刷头 模型
$obj = new objects\Objects(); // 创建 牙刷头 的实体
$obj->ply = './ply/牙刷头.ply'; // 指定 牙刷头 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.701102 0.701102 0.701102' ); // 设置材质的漫反射
$materials->setSpecular('0.5'); // 设置材质的高光反射强度
$materials->setRoughness('0.05'); // 设置粗糙度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 牙刷头 的材质属性
$scene->registerObjects($obj); // 将 牙刷头 注册到 scene 中
// 5、创建 牙刷头文字 模型
$obj = new objects\Objects(); // 创建 牙刷头文字 的实体
$obj->ply = './ply/牙刷头文字.ply'; // 指定 牙刷头文字 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.0144817 0.0144817 0.0144817' );// 设置材质的漫反射
$materials->setSpecular('1'); // 设置材质的高光反射强度
$materials->setRoughness('0'); // 设置粗糙度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 牙刷头文字 的材质属性
$scene->registerObjects($obj); // 将 牙刷头文字 注册到 scene 中
// 6、创建 金属振动轴 模型
$obj = new objects\Objects(); // 创建 金属振动轴 的实体
$obj->ply = './ply/金属振动轴.ply'; // 指定 金属振动轴 实体网格数据
$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";
// 设置模型的变换
$texture = new texture\procedural\Fresnelcolor(); // 创建一个菲涅尔反射纹理
$texture->setRefraction('0.7 0.7 0.7'); // 设置反射颜色
$scene->registerTexture($texture); // 将纹理注册到 scene 中
$materials = new materials\Metal(); // 创建一个材质
$materials->setFresnel($texture); // 设置材质的金属度
$materials->setUroughness('0.15'); // 设置U向粗糙度
$materials->setVroughness('0.15'); // 设置V向粗糙度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 金属振动轴 的材质属性
$scene->registerObjects($obj); // 将 金属振动轴 注册到 scene 中
// 7、创建 金属按扭底坐 模型
$obj = new objects\Objects(); // 创建 金属按扭底坐 的实体
$obj->ply = './ply/金属按扭底坐.ply'; // 指定 金属按扭底坐 实体网格数据
$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";
// 设置模型的变换
$texture = new texture\procedural\Fresnelcolor(); // 创建一个菲涅尔反射纹理
$texture->setRefraction('0.7 0.7 0.7'); // 设置反射颜色
$scene->registerTexture($texture); // 将纹理注册到 scene 中
$materials = new materials\Metal(); // 创建一个材质
$materials->setFresnel($texture); // 设置材质的金属度
$materials->setUroughness('0.05'); // 设置U向粗糙度
$materials->setVroughness('0.05'); // 设置V向粗糙度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 金属按扭底坐 的材质属性
$scene->registerObjects($obj); // 将 金属按扭底坐 注册到 scene 中
// 8、创建 刷毛样本金属圆管 模型
$obj = new objects\Objects(); // 创建 刷毛样本金属圆管 的实体
$obj->ply = './ply/刷毛样本金属圆管.ply'; // 指定 刷毛样本金属圆管 实体网格数据
$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";
// 设置模型的变换
$obj->setMaterial($materials); // 将上一个相同的材质设置为 刷毛样本金属圆管 的材质属性
$scene->registerObjects($obj); // 将 刷毛样本金属圆管 注册到 scene 中
// 9、创建 金属印字 模型
$obj = new objects\Objects(); // 创建 金属印字 的实体
$obj->ply = './ply/金属印字.ply'; // 指定 金属印字 实体网格数据
$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";
// 设置模型的变换
$obj->setMaterial($materials); // 将上一个相同的材质设置为 金属印字 的材质属性
$scene->registerObjects($obj); // 将 金属印字 注册到 scene 中
// 10、创建 刷毛样本印字 模型
$obj = new objects\Objects(); // 创建 刷毛样本印字 的实体
$obj->ply = './ply/刷毛样本印字.ply'; // 指定 刷毛样本印字 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.248287 0.0124709 0.0377595' ); // 设置材质的漫反射
$materials->setSpecular('0.5'); // 设置材质的高光反射强度
$materials->setRoughness('0.2'); // 设置粗糙度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 刷毛样本印字 的材质属性
$scene->registerObjects($obj); // 将 刷毛样本印字 注册到 scene 中
// 11、创建 刷毛样本001 模型
$obj = new objects\Objects(); // 创建 刷毛样本001 的实体
$obj->ply = './ply/刷毛样本001.ply'; // 指定 刷毛样本001 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.0204376 0.29558 0.16471' ); // 设置材质的漫反射
$materials->setSpecular('0.5'); // 设置材质的高光反射强度
$materials->setRoughness('0.2'); // 设置粗糙度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 刷毛样本001 的材质属性
$scene->registerObjects($obj); // 将 刷毛样本001 注册到 scene 中
// 12、创建 刷毛样本002 模型
$obj = new objects\Objects(); // 创建 刷毛样本002 的实体
$obj->ply = './ply/刷毛样本002.ply'; // 指定 刷毛样本002 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Glass(); // 创建一个材质
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 刷毛样本002 的材质属性
$scene->registerObjects($obj); // 将 刷毛样本002 注册到 scene 中
// 13、创建 透明塑料壳 模型
$obj = new objects\Objects(); // 创建 透明塑料壳 的实体
$obj->ply = './ply/透明塑料壳.ply'; // 指定 透明塑料壳 实体网格数据
$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";
// 设置模型的变换
$obj->setMaterial($materials); // 将上一个相同的材质设置为 透明塑料壳 的材质属性
$scene->registerObjects($obj); // 将 透明塑料壳 注册到 scene 中
// 14、创建 圆柱形塑料壳 模型
$obj = new objects\Objects(); // 创建 圆柱形塑料壳 的实体
$obj->ply = './ply/圆柱形塑料壳.ply'; // 指定 圆柱形塑料壳 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.291771 0.361307 0.701102' ); // 设置材质的漫反射
$materials->setSpecular('0.5'); // 设置材质的高光反射强度
$materials->setRoughness('0.0470588'); // 设置粗糙度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 圆柱形塑料壳 的材质属性
$scene->registerObjects($obj); // 将 圆柱形塑料壳 注册到 scene 中
// 15、创建 塑料垫子 模型
$obj = new objects\Objects(); // 创建 塑料垫子 的实体
$obj->ply = './ply/塑料垫子.ply'; // 指定 塑料垫子 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.701102 0.701102 0.701102' ); // 设置材质的漫反射
$materials->setSpecular('0.5'); // 设置材质的高光反射强度
$materials->setRoughness('0.05'); // 设置粗糙度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 塑料垫子 的材质属性
$scene->registerObjects($obj); // 将 塑料垫子 注册到 scene 中
// 16、创建 按扭印字 模型
$obj = new objects\Objects(); // 创建 按扭印字 的实体
$obj->ply = './ply/按扭印字.ply'; // 指定 按扭印字 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.0144817 0.0144817 0.0144817' );// 设置材质的漫反射
$materials->setSpecular('1'); // 设置材质的高光反射强度
$materials->setRoughness('0'); // 设置粗糙度
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 按扭印字 的材质属性
$scene->registerObjects($obj); // 将 按扭印字 注册到 scene 中
// 17、创建 散光灯罩 模型
$obj = new objects\Objects(); // 创建 散光灯罩 的实体
$obj->ply = './ply/散光灯罩.ply'; // 指定 散光灯罩 实体网格数据
$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";
// 设置模型的变换
$materials = new materials\Disney(); // 创建一个材质
$materials->setBaseColor( '0.7 0.7 0.7' ); // 设置材质的漫反射
$materials->setSpecular('0.5'); // 设置材质的高光反射强度
$materials->setRoughness('1'); // 设置粗糙度
$materials->setTransparencyFront('0.75');
$materials->setTransparencyBack('0.75');
$scene->registerMaterial($materials); // 将材质注册到 scene 中
$obj->setMaterial($materials); // 设置 散光灯罩 的材质属性
$scene->registerObjects($obj); // 将 散光灯罩 注册到 scene 中
// 18、创建 蓝色灯光 模型
$obj = new objects\Objects(); // 创建 蓝色灯光 的实体
$obj->ply = './ply/蓝色灯光.ply'; // 指定 蓝色灯光 实体网格数据
$materials = new materials\Matte(); // 创建一个材质
$materials->setBaseColor('0 0 0'); // 设置材质的漫反射
$materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
$materials->setEmission('0.00604871 0.278894 1'); // 设置材质为一个自发光材质,并指定发光颜色
$materials->emissionCfg = new lights\Emission( // 设置发光属性
[
'gain' => "5 5 5", // 设置发光增益
]
);
$scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
$obj->setMaterial($materials); // 为 蓝色灯光 指定一个自发光材质
$scene->registerObjects($obj); // 将 蓝色灯光 注册到 scene 中
// 19、创建 櫈色灯光 模型
$obj = new objects\Objects(); // 创建 櫈色灯光 的实体
$obj->ply = './ply/櫈色灯光.ply'; // 指定 櫈色灯光 实体网格数据
$materials = new materials\Matte(); // 创建一个材质
$materials->setBaseColor('0 0 0'); // 设置材质的漫反射
$materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
$materials->setEmission('1 0.0722717 0'); // 设置材质为一个自发光材质,并指定发光颜色
$materials->emissionCfg = new lights\Emission( // 设置发光属性
[
'gain' => "10 10 10", // 设置发光增益
]
);
$scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
$obj->setMaterial($materials); // 为 櫈色灯光 指定一个自发光材质
$scene->registerObjects($obj);
// // 一、创建光场:
// // 1、创建 面片光001
// $obj = new objects\Objects(); // 创建 面片光001 的实体
// $obj->ply = './ply/面光.001.ply'; // 指定 面片光001 实体网格数据
// $materials = new materials\Matte(); // 创建一个材质
// $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
// $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
// $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
// $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
// $obj->setMaterial($materials); // 为 面片光001 指定一个自发光材质
// $scene->registerObjects($obj); // 将 面片光001 注册到 scene 中
// // 2、创建 面片光002
// $obj = new objects\Objects(); // 创建 面片光002 的实体
// $obj->ply = './ply/面光.002.ply'; // 指定 面片光002 实体网格数据
// $materials = new materials\Matte(); // 创建一个材质
// $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
// $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
// $materials->setEmission('0 0 0'); // 设置材质为一个自发光材质,并指定发光颜色
// $materials->emissionCfg = new lights\Emission( // 设置发光属性
// [
// 'gain' => "30 30 30", // 设置发光增益
// ]
// );
// $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
// $obj->setMaterial($materials); // 为 面片光002 指定一个自发光材质
// $scene->registerObjects($obj); // 将 面片光002 注册到 scene 中
// // 3、创建 面片光003
// $obj = new objects\Objects(); // 创建 面片光003 的实体
// $obj->ply = './ply/面光.003.ply'; // 指定 面片光003 实体网格数据
// $materials = new materials\Matte(); // 创建一个材质
// $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
// $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
// $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
// $materials->emissionCfg = new lights\Emission( // 设置发光属性
// [
// 'gain' => "50 50 50", // 设置发光增益
// ]
// );
// $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
// $obj->setMaterial($materials); // 为 面片光003 指定一个自发光材质
// $scene->registerObjects($obj); // 将 面片光003 注册到 scene 中
// // 4、创建 面片光004
// $obj = new objects\Objects(); // 创建 面片光004 的实体
// $obj->ply = './ply/面光.004.ply'; // 指定 面片光004 实体网格数据
// $materials = new materials\Matte(); // 创建一个材质
// $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
// $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
// $materials->setEmission('0 0 0'); // 设置材质为一个自发光材质,并指定发光颜色
// $materials->emissionCfg = new lights\Emission( // 设置发光属性
// [
// 'gain' => "4 4 4", // 设置发光增益
// ]
// );
// $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
// $obj->setMaterial($materials); // 为 面片光004 指定一个自发光材质
// $scene->registerObjects($obj); // 将 面片光004 注册到 scene 中
// // 5、创建 面片光005
// $obj = new objects\Objects(); // 创建 面片光005 的实体
// $obj->ply = './ply/面光.005.ply'; // 指定 面片光005 实体网格数据
// $materials = new materials\Matte(); // 创建一个材质
// $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
// $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
// $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
// $materials->emissionCfg = new lights\Emission( // 设置发光属性
// [
// 'gain' => "10 10 10", // 设置发光增益
// ]
// );
// $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
// $obj->setMaterial($materials); // 为 面片光005 指定一个自发光材质
// $scene->registerObjects($obj); // 将 面片光005 注册到 scene 中
// // 6、创建 面片光006
// $obj = new objects\Objects(); // 创建 面片光006 的实体
// $obj->ply = './ply/面光.006.ply'; // 指定 面片光006 实体网格数据
// $materials = new materials\Matte(); // 创建一个材质
// $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
// $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
// $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
// $materials->emissionCfg = new lights\Emission( // 设置发光属性
// [
// 'gain' => "8 8 8", // 设置发光增益
// 'mapfile' => "SD-037.exr", // 加载一个光域文件
// 'gamma' => 1, // 设置校正光域文件的gamma值
// 'storage' => "float" // 声明光域文件表示色值的数据类型
// ]
// );
// $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
// $obj->setMaterial($materials); // 为 面片光006 指定一个自发光材质
// $scene->registerObjects($obj); // 将 面片光006 注册到 scene 中
// // 7、创建 面片光006
// $obj = new objects\Objects(); // 创建 面片光 的实体
// $obj->ply = './ply/面光.ply'; // 指定 面片光 实体网格数据
// $materials = new materials\Matte(); // 创建一个材质
// $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
// $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
// $materials->setEmission('1 1 1'); // 设置材质为一个自发光材质,并指定发光颜色
// $materials->emissionCfg = new lights\Emission( // 设置发光属性
// [
// 'gain' => "3.3 3.3 3.3", // 设置发光增益
// ]
// );
// $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
// $obj->setMaterial($materials); // 为 面片光 指定一个自发光材质
// $scene->registerObjects($obj); // 将 面片光 注册到 scene 中
// // 8、创建环境光
// $light = new lights\env\HdrImage( // new 一个环境光对象
// [
// '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' => "env.png", // 加载一个全景图像文件
// 'gamma' => 1, // 设置一个校正全景图像文件的 gamma 值
// 'storage' => "byte" // 声明这个图像文件表示色值的数据类型
// ]
// );
// $scene->registerLight($light); // 将环境光注册到 scene 中
// // 二、添加要渲染的模型
// // 1、创建地面模型
// $obj = new objects\Objects(); // 创建 地面 的实体
// $obj->ply = './ply/地面.ply'; // 指定 地面 实体网格数据
// $mapping = new texture\mapping\Mapping(); // 创建一个铺贴对象
// $mapping->useUVMapping2d( // 使用"uvmapping2d"类型的铺贴对象
// 0, // uv通道
// "0", // 旋转角度
// "0.4 -0.966", // 缩放比例
// "0.3 0.983" // 偏移量
// );
// $texture = new texture\procedural\ImageMap( // 创建一个纹理
// [
// 'file' => "方形阴影遮照 (3).png", // 加载一个图像文件
// 'gain' => 0.6, // 设置颜色增益
// 'gamma' => 1, // 设置校正图像文件的gamma值
// ]
// );
// $texture->mapping = $mapping; // 将铺贴对象赋值给纹理的“mapping”属性
// $scene->registerTexture($texture); // 将纹理注册到 scene 中
// $materials = new materials\Disney( // 创建一个材质
// [
// 'shadowcatcherEnable' => OPEN, // 设置为阴影捕捉器
// 'photongiEnable' => CLOSE // 关闭此材质的全局光缓存
// ]
// );
// $materials->setBaseColor('1 1 1'); // 设置材质的漫反射
// $materials->setTransparencyFront($texture); // 将纹理设置为材质的正面透明度
// $materials->setTransparencyBack($texture); // 将纹理设置为材质的背面透明度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 地面模型 的材质属性
// $scene->registerObjects($obj); // 将 地面模型 注册到 scene 中
// // 2、创建 刷毛003 模型
// $obj = new objects\Objects(); // 创建 刷毛003 的实体
// $obj->ply = './ply/刷毛003.ply'; // 指定 刷毛003 实体网格数据
// $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"; // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.233238 0.567919 0.654361' ); // 设置材质的漫反射
// $materials->setSpecular('1'); // 设置材质的高光反射强度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 刷毛003 的材质属性
// $scene->registerObjects($obj); // 将 刷毛003 注册到 scene 中
// // 3、创建 刷毛002 模型
// $obj = new objects\Objects(); // 创建 刷毛002 的实体
// $obj->ply = './ply/刷毛002.ply'; // 指定 刷毛002 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.0739024 0.0739024 0.0739024' );// 设置材质的漫反射
// $materials->setSpecular('1'); // 设置材质的高光反射强度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 刷毛002 的材质属性
// $scene->registerObjects($obj); // 将 刷毛002 注册到 scene 中
// // 3、创建 刷毛001 模型
// $obj = new objects\Objects(); // 创建 刷毛001 的实体
// $obj->ply = './ply/刷毛001.ply'; // 指定 刷毛001 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.857449 0.857449 0.857449' ); // 设置材质的漫反射
// $materials->setSpecular('1'); // 设置材质的高光反射强度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 刷毛001 的材质属性
// $scene->registerObjects($obj); // 将 刷毛001 注册到 scene 中
// // 4、创建 牙刷头 模型
// $obj = new objects\Objects(); // 创建 牙刷头 的实体
// $obj->ply = './ply/牙刷头.ply'; // 指定 牙刷头 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.701102 0.701102 0.701102' ); // 设置材质的漫反射
// $materials->setSpecular('0.5'); // 设置材质的高光反射强度
// $materials->setRoughness('0.05'); // 设置粗糙度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 牙刷头 的材质属性
// $scene->registerObjects($obj); // 将 牙刷头 注册到 scene 中
// // 5、创建 牙刷头文字 模型
// $obj = new objects\Objects(); // 创建 牙刷头文字 的实体
// $obj->ply = './ply/牙刷头文字.ply'; // 指定 牙刷头文字 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.0144817 0.0144817 0.0144817' );// 设置材质的漫反射
// $materials->setSpecular('1'); // 设置材质的高光反射强度
// $materials->setRoughness('0'); // 设置粗糙度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 牙刷头文字 的材质属性
// $scene->registerObjects($obj); // 将 牙刷头文字 注册到 scene 中
// // 6、创建 金属振动轴 模型
// $obj = new objects\Objects(); // 创建 金属振动轴 的实体
// $obj->ply = './ply/金属振动轴.ply'; // 指定 金属振动轴 实体网格数据
// $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";
// // 设置模型的变换
// $texture = new texture\procedural\Fresnelcolor(); // 创建一个菲涅尔反射纹理
// $texture->setRefraction('0.7 0.7 0.7'); // 设置反射颜色
// $scene->registerTexture($texture); // 将纹理注册到 scene 中
// $materials = new materials\Metal(); // 创建一个材质
// $materials->setFresnel($texture); // 设置材质的金属度
// $materials->setUroughness('0.15'); // 设置U向粗糙度
// $materials->setVroughness('0.15'); // 设置V向粗糙度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 金属振动轴 的材质属性
// $scene->registerObjects($obj); // 将 金属振动轴 注册到 scene 中
// // 7、创建 金属按扭底坐 模型
// $obj = new objects\Objects(); // 创建 金属按扭底坐 的实体
// $obj->ply = './ply/金属按扭底坐.ply'; // 指定 金属按扭底坐 实体网格数据
// $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";
// // 设置模型的变换
// $texture = new texture\procedural\Fresnelcolor(); // 创建一个菲涅尔反射纹理
// $texture->setRefraction('0.7 0.7 0.7'); // 设置反射颜色
// $scene->registerTexture($texture); // 将纹理注册到 scene 中
// $materials = new materials\Metal(); // 创建一个材质
// $materials->setFresnel($texture); // 设置材质的金属度
// $materials->setUroughness('0.05'); // 设置U向粗糙度
// $materials->setVroughness('0.05'); // 设置V向粗糙度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 金属按扭底坐 的材质属性
// $scene->registerObjects($obj); // 将 金属按扭底坐 注册到 scene 中
// // 8、创建 刷毛样本金属圆管 模型
// $obj = new objects\Objects(); // 创建 刷毛样本金属圆管 的实体
// $obj->ply = './ply/刷毛样本金属圆管.ply'; // 指定 刷毛样本金属圆管 实体网格数据
// $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";
// // 设置模型的变换
// $obj->setMaterial($materials); // 将上一个相同的材质设置为 刷毛样本金属圆管 的材质属性
// $scene->registerObjects($obj); // 将 刷毛样本金属圆管 注册到 scene 中
// // 9、创建 金属印字 模型
// $obj = new objects\Objects(); // 创建 金属印字 的实体
// $obj->ply = './ply/金属印字.ply'; // 指定 金属印字 实体网格数据
// $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";
// // 设置模型的变换
// $obj->setMaterial($materials); // 将上一个相同的材质设置为 金属印字 的材质属性
// $scene->registerObjects($obj); // 将 金属印字 注册到 scene 中
// // 10、创建 刷毛样本印字 模型
// $obj = new objects\Objects(); // 创建 刷毛样本印字 的实体
// $obj->ply = './ply/刷毛样本印字.ply'; // 指定 刷毛样本印字 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.248287 0.0124709 0.0377595' ); // 设置材质的漫反射
// $materials->setSpecular('0.5'); // 设置材质的高光反射强度
// $materials->setRoughness('0.2'); // 设置粗糙度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 刷毛样本印字 的材质属性
// $scene->registerObjects($obj); // 将 刷毛样本印字 注册到 scene 中
// // 11、创建 刷毛样本001 模型
// $obj = new objects\Objects(); // 创建 刷毛样本001 的实体
// $obj->ply = './ply/刷毛样本001.ply'; // 指定 刷毛样本001 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.0204376 0.29558 0.16471' ); // 设置材质的漫反射
// $materials->setSpecular('0.5'); // 设置材质的高光反射强度
// $materials->setRoughness('0.2'); // 设置粗糙度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 刷毛样本001 的材质属性
// $scene->registerObjects($obj); // 将 刷毛样本001 注册到 scene 中
// // 12、创建 刷毛样本002 模型
// $obj = new objects\Objects(); // 创建 刷毛样本002 的实体
// $obj->ply = './ply/刷毛样本002.ply'; // 指定 刷毛样本002 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Glass(); // 创建一个材质
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 刷毛样本002 的材质属性
// $scene->registerObjects($obj); // 将 刷毛样本002 注册到 scene 中
// // 13、创建 透明塑料壳 模型
// $obj = new objects\Objects(); // 创建 透明塑料壳 的实体
// $obj->ply = './ply/透明塑料壳.ply'; // 指定 透明塑料壳 实体网格数据
// $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";
// // 设置模型的变换
// $obj->setMaterial($materials); // 将上一个相同的材质设置为 透明塑料壳 的材质属性
// $scene->registerObjects($obj); // 将 透明塑料壳 注册到 scene 中
// // 14、创建 圆柱形塑料壳 模型
// $obj = new objects\Objects(); // 创建 圆柱形塑料壳 的实体
// $obj->ply = './ply/圆柱形塑料壳.ply'; // 指定 圆柱形塑料壳 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.291771 0.361307 0.701102' ); // 设置材质的漫反射
// $materials->setSpecular('0.5'); // 设置材质的高光反射强度
// $materials->setRoughness('0.0470588'); // 设置粗糙度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 圆柱形塑料壳 的材质属性
// $scene->registerObjects($obj); // 将 圆柱形塑料壳 注册到 scene 中
// // 15、创建 塑料垫子 模型
// $obj = new objects\Objects(); // 创建 塑料垫子 的实体
// $obj->ply = './ply/塑料垫子.ply'; // 指定 塑料垫子 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.701102 0.701102 0.701102' ); // 设置材质的漫反射
// $materials->setSpecular('0.5'); // 设置材质的高光反射强度
// $materials->setRoughness('0.05'); // 设置粗糙度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 塑料垫子 的材质属性
// $scene->registerObjects($obj); // 将 塑料垫子 注册到 scene 中
// // 16、创建 按扭印字 模型
// $obj = new objects\Objects(); // 创建 按扭印字 的实体
// $obj->ply = './ply/按扭印字.ply'; // 指定 按扭印字 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.0144817 0.0144817 0.0144817' );// 设置材质的漫反射
// $materials->setSpecular('1'); // 设置材质的高光反射强度
// $materials->setRoughness('0'); // 设置粗糙度
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 按扭印字 的材质属性
// $scene->registerObjects($obj); // 将 按扭印字 注册到 scene 中
// // 17、创建 散光灯罩 模型
// $obj = new objects\Objects(); // 创建 散光灯罩 的实体
// $obj->ply = './ply/散光灯罩.ply'; // 指定 散光灯罩 实体网格数据
// $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";
// // 设置模型的变换
// $materials = new materials\Disney(); // 创建一个材质
// $materials->setBaseColor( '0.7 0.7 0.7' ); // 设置材质的漫反射
// $materials->setSpecular('0.5'); // 设置材质的高光反射强度
// $materials->setRoughness('1'); // 设置粗糙度
// $materials->setTransparencyFront('0.75');
// $materials->setTransparencyBack('0.75');
// $scene->registerMaterial($materials); // 将材质注册到 scene 中
// $obj->setMaterial($materials); // 设置 散光灯罩 的材质属性
// $scene->registerObjects($obj); // 将 散光灯罩 注册到 scene 中
// // 18、创建 蓝色灯光 模型
// $obj = new objects\Objects(); // 创建 蓝色灯光 的实体
// $obj->ply = './ply/蓝色灯光.ply'; // 指定 蓝色灯光 实体网格数据
// $materials = new materials\Matte(); // 创建一个材质
// $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
// $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
// $materials->setEmission('0.00604871 0.278894 1'); // 设置材质为一个自发光材质,并指定发光颜色
// $materials->emissionCfg = new lights\Emission( // 设置发光属性
// [
// 'gain' => "5 5 5", // 设置发光增益
// ]
// );
// $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
// $obj->setMaterial($materials); // 为 蓝色灯光 指定一个自发光材质
// $scene->registerObjects($obj); // 将 蓝色灯光 注册到 scene 中
// // 19、创建 櫈色灯光 模型
// $obj = new objects\Objects(); // 创建 櫈色灯光 的实体
// $obj->ply = './ply/櫈色灯光.ply'; // 指定 櫈色灯光 实体网格数据
// $materials = new materials\Matte(); // 创建一个材质
// $materials->setBaseColor('0 0 0'); // 设置材质的漫反射
// $materials->setTransparencyShadow('1 1 1'); // 设置材质产生阴影的透明度
// $materials->setEmission('1 0.0722717 0'); // 设置材质为一个自发光材质,并指定发光颜色
// $materials->emissionCfg = new lights\Emission( // 设置发光属性
// [
// 'gain' => "10 10 10", // 设置发光增益
// ]
// );
// $scene->registerMaterial($materials); // 将的自发光材质注册到 scene 中
// $obj->setMaterial($materials); // 为 櫈色灯光 指定一个自发光材质
// $scene->registerObjects($obj);
// 三、创建相机 // 三、创建相机
$camera = new camera\Perspective(); $camera = new camera\Perspective();
// echo $camera;
$scene->registerCamera($camera); $scene->registerCamera($camera);
@ -451,7 +454,7 @@ $scene->registerCamera($camera);
echo $scene;
echo $scene;

10
src/scene/BaseCfg.php

@ -50,14 +50,6 @@ class BaseCfg extends Base
switch(gettype($value)) switch(gettype($value))
{ {
case 'string': case 'string':
// if( count(explode(" ", $value)) != 3 || in_array(false,array_map('is_numeric',explode(" ", $value))) )
// {
// $ret .= "{$className}.{$name} = \"{$value}\"\n";
// }
// else
// {
// $ret .= "{$className}.{$name} = {$value}\n";
// }
$ret .= "{$className}.{$name} = \"{$value}\"\n"; $ret .= "{$className}.{$name} = \"{$value}\"\n";
break; break;
@ -75,8 +67,6 @@ class BaseCfg extends Base
break; break;
case 'NULL': case 'NULL':
// echo "已经从这里退出\n";
// exit;
break; break;
case 'double': case 'double':

4
src/scene/Scene.php

@ -118,7 +118,7 @@ class Scene extends BaseCfg
$this->cameras = []; $this->cameras = [];
foreach( get_object_vars($camera) as $key => $value ) foreach( get_object_vars($camera) as $key => $value )
{ {
if($value != null)
if( $value !== null )
{ {
$key = implode(".", array_map('strtolower', StringHelper::camelStrToArray($key))); $key = implode(".", array_map('strtolower', StringHelper::camelStrToArray($key)));
$this->cameras[$key] = $value; $this->cameras[$key] = $value;
@ -133,7 +133,7 @@ class Scene extends BaseCfg
{ {
foreach( get_object_vars($world) as $key => $value ) foreach( get_object_vars($world) as $key => $value )
{ {
if($value != null)
if( $value !== null )
{ {
$key = implode(".", array_map('strtolower', StringHelper::camelStrToArray($key))); $key = implode(".", array_map('strtolower', StringHelper::camelStrToArray($key)));
$this->world[$key] = $value; $this->world[$key] = $value;

2
src/scene/camera/Perspective.php

@ -32,7 +32,7 @@ class Perspective extends CameraBase
/** /**
* @var float 景深(取值:0.0001744423-0.2232861),使用较高的值可得到更大程度的散焦效果,使用较低的值可得到更锐利的图像效果 * @var float 景深(取值:0.0001744423-0.2232861),使用较高的值可得到更大程度的散焦效果,使用较低的值可得到更锐利的图像效果
*/ */
public $lensradius = 0; //输不出 0
public $lensradius = 0;
/** /**
* @var float 物距,相机成像焦点到被拍摄物体的距离 * @var float 物距,相机成像焦点到被拍摄物体的距离

21
src/utils/StringHelper.php

@ -35,17 +35,7 @@ class StringHelper
$retStr[] = "{$key}.{$value}"; $retStr[] = "{$key}.{$value}";
} }
} }
else if( is_string($value) )
{
if( count(explode(" ", $value)) != 3 || in_array(false,array_map('is_numeric',explode(" ", $value))) )
{
$retStr[] = "{$key} = \"{$value}\"";
}
else
{
$retStr[] = "{$key} = {$value}";
}
}
else if(is_object($value) && $value instanceof BaseCfg) else if(is_object($value) && $value instanceof BaseCfg)
{ {
foreach( explode("\n", $value->toString()) as $value ) foreach( explode("\n", $value->toString()) as $value )
@ -57,6 +47,15 @@ class StringHelper
} }
} }
} }
else if( is_bool($value) )
{
$value = $value ? 1 : 0;
$retStr[] = "{$key} = {$value}";
}
else if( is_string($value) )
{
$retStr[] = "{$key} = \"{$value}\"";
}
else else
{ {
$retStr[] = "{$key} = {$value}"; $retStr[] = "{$key} = {$value}";

Loading…
Cancel
Save