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.
87 lines
3.2 KiB
87 lines
3.2 KiB
<?php
|
|
|
|
|
|
|
|
namespace Blobt\Luxcore\scene;
|
|
|
|
|
|
include dirname(dirname(__FILE__)) . "/vendor/autoload.php";
|
|
|
|
$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' ] ); //创建一个的模型
|
|
|
|
|
|
$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;
|
|
|
|
|
|
?>
|