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.
 
 

231 lines
11 KiB

<?php
namespace Blobt\Luxcore\scene;
include dirname(dirname(__FILE__)) . "/vendor/autoload.php";
$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 中
// 二、加载要渲染的模型
// //添加第一个模型
// $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' ] ); //创建一个的模型
// $cloudsMap = new texture\procedural\BlenderClouds(); //创建一个 Clouds类的贴图对象
// $scene->registerTexture($cloudsMap); //将这个对象注册到 Scene
// $imageMap = new texture\procedural\ImageMap(); //创建一个 ImageMap类的贴图对象
// $scene->registerTexture($imageMap); //将这个对象注册到 Scene
// $blend = new texture\procedural\BlenderBlend(); //创建一个 Blend类的贴图对象
// $scene->registerTexture($blend); //将这个对象注册到 Scene
// $disney = new materials\Disney(); //创建一个 Disney 材质对象
// $disney->setBaseColor($cloudsMap); //为 basecolor 指定一个贴图对象,如果这个对象没有注册到Scene,则 set函数抛出异常,以下同理
// $disney->setMetallic($blend);
// $disney->setBumptex($imageMap);
// $scene->registerMaterial($disney); //将这个对象注册到 Scene
// $metal = new materials\Metal(); //创建一个 Disney 材质对象
// $metal->setBumptex($cloudsMap);
// $scene->registerMaterial($metal); //将这个对象注册到 Scene
// $mix = new materials\Mix(); //创建 Mix 材质对象
// $mix->setMaterial1($disney); //为材质通道1 指定一个键名
// $mix->setMaterial2($metal); //为材质通道2 指定一个键名
// $mix->setAmount($blend ); //指定混合系数为 0.6
// $scene->registerMaterial($mix); //将这个对象注册到 Scene
// $obj->setMaterial($mix) ; //为模型的指定一个混合材质
// $scene->registerObjects($obj); //将模型添加到场景中
// //添加第二个模型
// $obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型,
// $scene->registerObjects($obj); //将模型添加到场景中
// //添加第三个模型
// $obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型,
// $scene->registerObjects($obj); //将模型添加到场景中
// //添加第四个模型
// $obj = new objects\Objects( [ 'ply' => 'mesh-119.ply','appliedtransformation' => '1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' ] ); //创建一个的模型,
// $ClearVol = new volumes\Clear(); //创建一个 Clear体积效果
// $scene->registerVolume($ClearVol); //将体积效果注册到Scene
// $colorGlass = new materials\Glass(); //创建一个玻璃材质,
// $colorGlass->setVolumeInterior($ClearVol); //将 Clear体积效果赋值到玻璃材质 的 体积属性
// $scene->registerMaterial($colorGlass); //将玻璃材质注册到 Scene
// $obj->setMaterial($colorGlass); //将玻璃材质赋值到模型的材质属性
// $scene->registerObjects($obj); //将模型添加到场景中
// //添加一个世界对象
// $default = new world\WorldDefault();
// $default->setDefaultVolume($ClearVol);
// $scene->registerWorld($default);
// //添加一个相机
// $camera = new camera\Perspective();
// $scene->registerCamera($camera);
echo $scene;
?>