Browse Source

新增5个灯光类文件,CorlorConst.php、HdrImage.php、Sky.php三个类文件移入到env目录下。其他有四个类文件有修改注释

master
yuanjiajia 3 years ago
parent
commit
72f88c27ba
  1. 73
      src/scene/lights/DistantStar.php
  2. 2
      src/scene/lights/LightBase.php
  3. 114
      src/scene/lights/Projection.php
  4. 106
      src/scene/lights/Sphere.php
  5. 102
      src/scene/lights/Spot.php
  6. 77
      src/scene/lights/Sun.php
  7. 2
      src/scene/lights/Visibility.php
  8. 14
      src/scene/lights/env/CorlorConst.php
  9. 20
      src/scene/lights/env/HdrImage.php
  10. 22
      src/scene/lights/env/Sky.php
  11. 38
      src/scene/materials/emission/Emission.php
  12. 2
      src/scene/render/cache/VisibilityMapCache.php

73
src/scene/lights/DistantStar.php

@ -0,0 +1,73 @@
<?php
namespace Blobt\Luxcore\scene\lights;
use Blobt\Luxcore\scene\Scene;
use Blobt\Luxcore\core\Base;
class DistantStar extends LightBase
{
/**
* 遥远的恒星
*/
const TYPE_DISTANT = 'distant';
/**
* @var string 增益,色彩模式的色值($color) 色温模式的色温值(会规格化为一个普通色值) 的增益倍数,这个倍数是
* UI界面中曝光参数(2的n次方,2底数,n是UI界面中曝光参数设置的值)、与UI界面中增益倍数 乘以
* 10.47606(格规化开启后的一个因数) 的乘积 的计算结果
*
*/
public $gain = "1 1 1";
/**
* @var string 发光颜色,分两种情况:1、当色彩模式开启,色温模式半闭时,这里的参数是一组小数形式RGB三通道的色值
* 2、当色彩模式关闭,色温模式开启时,这里只能取一个固定的色值 ”1 1 1
*/
public $color = "1 1 1";
/**
* @var float 色温模式,开关状态与色彩模式互斥,1、当取值为0-13000的小数时(会被转化为一个普通色值),色温模式开启,色彩模式关闭。
* 2、当取值为-1时,色温模式关闭,色彩模式启。
*/
public $temperature = -1;
/**
* @var bool 是否将色温模式下的色温值规格化为小数形式的RGB色值,色温模式开启,色彩模式关闭
*/
public $temperatureNormalize = self::CLOSE;
/**
* @var string 一个由16个数据组成模型的空间位置参数,包抱位置坐标,旋转参数,缩放参数
*/
public $transformation = "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1";
/**
* @var string 目标方向
*/
public $direction = "-0 0 -1";
/**
* @var bool 恒星光源相对尺寸(取值:大于等于0.5的小数),1表示模拟 1个地日距离 的太阳光源尺寸,2表示模拟 2个地日距离 的太阳光
* 源尺寸,以此类推
*/
public $theta = 10;
/**
* @param array $config 接收一个数组,可以初始化当前实例化对象的各种属性
*/
public function __construct($config = [])
{
$this->type = self::TYPE_DISTANT;
$this->id = Scene::createID();
Base::__construct($config);
}
}
?>

2
src/scene/lights/LightBase.php

@ -1,6 +1,6 @@
<?php <?php
namespace Blobt\Luxcore\scene\ligths;
namespace Blobt\Luxcore\scene\lights;
use Blobt\Luxcore\scene\BaseCfg; use Blobt\Luxcore\scene\BaseCfg;
class LightBase extends BaseCfg class LightBase extends BaseCfg

114
src/scene/lights/Projection.php

@ -0,0 +1,114 @@
<?php
namespace Blobt\Luxcore\scene\lights;
use Blobt\Luxcore\scene\Scene;
use Blobt\Luxcore\core\Base;
class Projection extends LightBase
{
/**
* 有贴图的聚光灯
*/
const TYPE_PROJECTION = 'projection';
/**
* @var string 增益,当发光强度单位是 artistic 类型时,可以设置此参数,这个参数是色彩模式的色值($color) 色温
* 模式的色温值(会规格化为一个普通色值) 的增益倍数,这个倍数则是由 UI界面中曝光参数(2的n次方,2底数,
* n是UI界面中曝光参数设置的值)、与UI界面中增益倍数的乘积 的计算结果;否则固定为 1 1 1
*/
public $gain = "1 1 1";
/**
* @var float 能量强度(功率),当发光强度单位为非 artistic 类型时,可以设置此参数,此值 由一个单位是瓦特、流明或坎德拉的数转换而得(取
* 值:大于等于0的小数);否则固定为0
*/
public $power = 0;
/**
* @var float 转换效率, 当发光强度单位是 参量乘方 类型时,可以设置此参数,(取值:大于等于0的小数),否则artistic 类型,固定为0;流明
* 和坎德拉时固定为1
*/
public $efficency = 0;
/**
* @var bool 是否 通过发光强度单位(流明、坎德拉、勒克斯)推荐的颜色亮度 对强度进行规格化,以模拟发光效率函数,当发光强度单位非 artistic
* 类型时,可以设置此参数,(取值:true或false),否则固定为 false
*/
public $normalizebycolor = self::CLOSE;
/**
* @var string 发光颜色,分两种情况:1、当色彩模式开启,色温模式半闭时,这里的参数是一组小数形式RGB三通道的色值
* 2、当色彩模式关闭,色温模式开启时,这里只能取一个固定的色值 ”1 1 1
*/
public $color = "1 1 1";
/**
* @var float 色温模式,开关状态与色彩模式互斥,1、当取值为0-13000的小数时(会被转化为一个普通色值),色温模式开启,色彩模式关闭。
* 2、当取值为-1时,色温模式关闭,色彩模式启。
*/
public $temperature = -1;
/**
* @var bool 是否将色温模式下的色温值规格化为小数形式的RGB色值,色温模式开启,色彩模式关闭
*/
public $temperatureNormalize = self::CLOSE;
/**
* @var string 光域网文件名及路径,如果为空,则表示不使用光域网
*/
public $mapfile;
/**
* @var float 校正光域网文件的gamma值,(固定取值:1)
*/
public $gamma;
/**
* @var string 输出的图片的色值以何种方式表示(固定取值:"float"
*/
public $storage;
/**
* @var string 一个由16个数据组成模型的空间位置参数,包抱位置坐标,旋转参数,缩放参数
*/
public $transformation = "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1";
/**
* @var string 位置
*/
public $position = "0 0 0";
/**
* @var string 目标方向(位置)
*/
public $target = "0 0 -1";
/**
* @var float 光线扩散角度(取值:1-180的小数),这个角度值是 光源向外扩散边缘 的最大角度。
*/
public $fov = 90;
/**
* @param array $config 接收一个数组,可以初始化当前实例化对象的各种属性
*/
public function __construct($config = [])
{
$this->type = self::TYPE_PROJECTION;
$this->id = Scene::createID();
Base::__construct($config);
}
}
?>

106
src/scene/lights/Sphere.php

@ -0,0 +1,106 @@
<?php
namespace Blobt\Luxcore\scene\lights;
use Blobt\Luxcore\scene\Scene;
use Blobt\Luxcore\core\Base;
class Sphere extends LightBase
{
/**
* 球形光、或点光
*/
const TYPE_SPHERE = 'sphere';
const TYPE_MAPSPHERE = 'mapsphere';
/**
* @var string 增益,当发光强度单位是 artistic 类型时,可以设置此参数,这个参数是色彩模式的色值($color) 色温
* 模式的色温值(会规格化为一个普通色值) 的增益倍数,这个倍数则是由 UI界面中曝光参数(2的n次方,2底数,
* n是UI界面中曝光参数设置的值)、与UI界面中增益倍数的乘积 的计算结果;否则固定为 1 1 1
*/
public $gain = "1 1 1";
/**
* @var float 能量强度(功率),当发光强度单位为非 artistic 类型时,可以设置此参数,此值 由一个单位是瓦特、流明或坎德拉的数转换而得(取
* 值:大于等于0的小数);否则固定为0
*/
public $power = 0;
/**
* @var float 转换效率, 当发光强度单位是 参量乘方 类型时,可以设置此参数,(取值:大于等于0的小数),否则artistic 类型,固定为0;流明
* 和坎德拉时固定为1
*/
public $efficency = 0;
/**
* @var bool 是否 通过发光强度单位(流明、坎德拉、勒克斯)推荐的颜色亮度 对强度进行规格化,以模拟发光效率函数,当发光强度单位非 artistic
* 类型时,可以设置此参数,(取值:true或false),否则固定为 false
*/
public $normalizebycolor = self::CLOSE;
/**
* @var string 发光颜色,分两种情况:1、当色彩模式开启,色温模式半闭时,这里的参数是一组小数形式RGB三通道的色值
* 2、当色彩模式关闭,色温模式开启时,这里只能取一个固定的色值 ”1 1 1
*/
public $color = "1 1 1";
/**
* @var float 色温模式,开关状态与色彩模式互斥,1、当取值为0-13000的小数时(会被转化为一个普通色值),色温模式开启,色彩模式关闭。
* 2、当取值为-1时,色温模式关闭,色彩模式启。
*/
public $temperature = -1;
/**
* @var bool 是否将色温模式下的色温值规格化为小数形式的RGB色值,色温模式开启,色彩模式关闭
*/
public $temperatureNormalize = self::CLOSE;
/**
* @var string 光域网文件名及路径,如果为空,则表示不使用光域网
*/
public $mapfile;
/**
* @var float 校正光域网文件的gamma值,(固定取值:1)
*/
public $gamma;
/**
* @var string 输出的图片的色值以何种方式表示(固定取值:"float"
*/
public $storage;
/**
* @var string 一个由16个数据组成模型的空间位置参数,包抱位置坐标,旋转参数,缩放参数
*/
public $transformation = "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1";
/**
* @var string 位置
*/
public $position = "0 0 0";
/**
* @var float 光源半径,(取值:大于等于0的小数)
*/
public $radius = 0.2;
/**
* @param array $config 接收一个数组,可以初始化当前实例化对象的各种属性
*/
public function __construct($config = [])
{
$this->type = self::TYPE_SPHERE;
$this->id = Scene::createID();
Base::__construct($config);
}
}
?>

102
src/scene/lights/Spot.php

@ -0,0 +1,102 @@
<?php
namespace Blobt\Luxcore\scene\lights;
use Blobt\Luxcore\scene\Scene;
use Blobt\Luxcore\core\Base;
class Spot extends LightBase
{
/**
* 聚光灯
*/
const TYPE_SPOT = 'spot';
/**
* @var string 增益,当发光强度单位是 artistic 类型时,可以设置此参数,这个参数是色彩模式的色值($color) 色温
* 模式的色温值(会规格化为一个普通色值) 的增益倍数,这个倍数则是由 UI界面中曝光参数(2的n次方,2底数,
* n是UI界面中曝光参数设置的值)、与UI界面中增益倍数的乘积 的计算结果;否则固定为 1 1 1
*/
public $gain = "1 1 1";
/**
* @var float 能量强度(功率),当发光强度单位为非 artistic 类型时,可以设置此参数,此值 由一个单位是瓦特、流明或坎德拉的数转换而得(取
* 值:大于等于0的小数);否则固定为0
*/
public $power = 0;
/**
* @var float 转换效率, 当发光强度单位是 参量乘方 类型时,可以设置此参数,(取值:大于等于0的小数),否则artistic 类型,固定为0;流明
* 和坎德拉时固定为1
*/
public $efficency = 0;
/**
* @var bool 是否 通过发光强度单位(流明、坎德拉、勒克斯)推荐的颜色亮度 对强度进行规格化,以模拟发光效率函数,当发光强度单位非 artistic
* 类型时,可以设置此参数,(取值:true或false),否则固定为 false
*/
public $normalizebycolor = self::CLOSE;
/**
* @var string 发光颜色,分两种情况:1、当色彩模式开启,色温模式半闭时,这里的参数是一组小数形式RGB三通道的色值
* 2、当色彩模式关闭,色温模式开启时,这里只能取一个固定的色值 ”1 1 1
*/
public $color = "1 1 1";
/**
* @var float 色温模式,开关状态与色彩模式互斥,1、当取值为0-13000的小数时(会被转化为一个普通色值),色温模式开启,色彩模式关闭。
* 2、当取值为-1时,色温模式关闭,色彩模式启。
*/
public $temperature = -1;
/**
* @var bool 是否将色温模式下的色温值规格化为小数形式的RGB色值,色温模式开启,色彩模式关闭
*/
public $temperatureNormalize = self::CLOSE;
/**
* @var string 一个由16个数据组成模型的空间位置参数,包抱位置坐标,旋转参数,缩放参数
*/
public $transformation = "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1";
/**
* @var string 位置
*/
public $position = "0 0 0";
/**
* @var string 目标方向(位置)
*/
public $target = "0 0 -1";
/**
* @var float 光线扩散角度(取值:1-90的小数),这个角度值是 光源至目标点的连线 光源向外扩散边缘 的角度。
*/
public $coneangle = 22.5;
/**
* @var float 强度从 中心向边缘衰减 的起始位置(取值:0-1的小数),这个值确定一个 从中心到边缘 的某一个起始位置,光线强度将从这个位向边缘衰减。
* 值越接近0,这个起始位置越靠近边缘,强度从中心向边缘衰减越不明显,看起来中心亮度与边缘亮度是一样的;值越接近1,起始位置越靠近中心,
* 这时强度从中心向边缘衰减到最弱时,将有一个明显的过度。
*/
public $conedeltaangle = 0.25;
/**
* @param array $config 接收一个数组,可以初始化当前实例化对象的各种属性
*/
public function __construct($config = [])
{
$this->type = self::TYPE_SPOT;
$this->id = Scene::createID();
Base::__construct($config);
}
}
?>

77
src/scene/lights/Sun.php

@ -0,0 +1,77 @@
<?php
namespace Blobt\Luxcore\scene\lights;
use Blobt\Luxcore\scene\Scene;
use Blobt\Luxcore\core\Base;
class Sun extends LightBase
{
/**
* 太阳
*/
const TYPE_SUN = 'sun';
/**
* @var string 增益,分两种情况:1、当色彩模式开启,色温模式半闭时,这里的参数是一组小数形式RGB三通道的HDR色值,这个色值是由 UI界面中色彩模
* 式的色值、UI界面中曝光参数(2的n次方,2底数,n是UI界面中曝光参数设置的值)、与UI界面中增益倍数的乘积
* 计算结果。
* 2、当色彩模式关闭,色温模式开启时,这里的参数就是色温的倍数,这个倍数是由 UI界面中曝光参数(2的n次方,2
* 底数,n是UI界面中曝光参数设置的值)、与UI界面中增益倍数的乘积 的计算结果。
*/
public $gain = "1 1 1";
/**
* @var float 色温模式,开关状态与色彩模式互斥,1、当取值为0-13000的小数时(会被转化为一个普通色值),色温模式开启,色彩模式关闭。
* 2、当取值为-1时,色温模式关闭,色彩模式启。
*/
public $temperature = -1;
/**
* @var bool 是否将色温模式下的色温值规格化为小数形式的RGB色值,色温模式开启,色彩模式关闭
*/
public $temperatureNormalize = self::CLOSE;
/**
* @var float 浑浊度,(取值:0-30的小数)。空气不清洁度,当空气中的尘埃越多,太阳光谱中有更多蓝色光谱被阻挡,因此天光趋向暖色,
* 当空气中的尘埃越少,太阳光谱中有更多蓝色光穿透大气,因此天光趋向冷色。
*/
public $turbidity = 2.2;
/**
* @var string 一个由16个数据组成模型的空间位置参数,包抱位置坐标,旋转参数,缩放参数
*/
public $transformation = "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1";
/**
* @var string 目标方向
*/
public $dir = "0 0 1";
/**
* @var float 太阳光源相对尺寸(取值:大于等于1的小数),1表示模拟 1个地日距离 的太阳光源尺寸,2表示模拟 2个地日距离 的太阳光
* 源尺寸,以此类推
*/
public $relsize = 1;
/**
* @param array $config 接收一个数组,可以初始化当前实例化对象的各种属性
* @param object $mapping 如需自定义非物理特性的可见性,必须传入一个 Visibility类对象,否则使用一个默认的可见性参数
*/
public function __construct($config = [],Visibility $visibility = null)
{
if( $visibility != null )$this->visibility = $visibility;
else $this->visibility = new Visibility();
$this->type = self::TYPE_SUN;
$this->id = Scene::createID();
Base::__construct($config);
}
}
?>

2
src/scene/lights/Visibility.php

@ -1,6 +1,6 @@
<?php <?php
namespace Blobt\Luxcore\scene\ligths;
namespace Blobt\Luxcore\scene\lights;
use Blobt\Luxcore\scene\BaseCfg; use Blobt\Luxcore\scene\BaseCfg;
class Visibility extends BaseCfg class Visibility extends BaseCfg

src/scene/lights/CorlorConst.php → src/scene/lights/env/CorlorConst.php

src/scene/lights/HdrImage.php → src/scene/lights/env/HdrImage.php

src/scene/lights/Sky.php → src/scene/lights/env/Sky.php

38
src/scene/materials/emission/Emission.php

@ -7,52 +7,59 @@ class Emission extends BaseCfg
{ {
/** /**
* @var string 亮度增益,当发光强度单位是 artistic 类型时,或是 坎德拉类型且坎德拉参数下勾选为(每平方米时),可以设置此参数,分别
* 控制自发光颜色RGB三个通道的放大倍数;否则固定为 1 1 1
* @var string 亮度增益,当发光强度单位是 artistic 类型时,或是 坎德拉类型且坎德拉参数下勾选为(每平方米时),可以设置此参数,这个
* 参数是色彩模式的色值($color)的增益倍数,这个倍数则是由 UI界面中曝光参数(2的n次方,2底数,n是UI界面中曝光参数设
* 置的值)、与UI界面中增益倍数的乘积 的计算结果;;否则固定为 1 1 1
*/ */
public $gain = "1 1 1"; public $gain = "1 1 1";
/** /**
* @var float 能量强度, 当发光强度单位非 artistic 类型和坎德拉类型且坎德拉参数下勾选为(每平方米时)时,可以设置此参数,此值 由一
* @var float 能量强度,当发光强度单位 artistic 类型和坎德拉类型且坎德拉参数下勾选为(每平方米时)时,可以设置此参数,此值 由一
* 个单位是瓦特、流明或坎德拉的数转换而得(取值:大于等于0的小数);否则固定为0 * 个单位是瓦特、流明或坎德拉的数转换而得(取值:大于等于0的小数);否则固定为0
*/ */
public $power = 0; public $power = 0;
/** /**
* @var float 转换效率, 当发光强度单位是 参量乘方 类型时,可以设置此参数,(取值:大于等于0的小数),否则artistic 类型和坎德 * @var float 转换效率, 当发光强度单位是 参量乘方 类型时,可以设置此参数,(取值:大于等于0的小数),否则artistic 类型和坎德
* 拉类型且坎德拉参数下勾选为(每平方米时),固定为0;流明和坎德拉时固定为1
* 拉类型且坎德拉参数下勾选为(每平方米时)时,固定为0;流明和坎德拉时固定为1
*/ */
public $efficency = 0; public $efficency = 0;
/** /**
* @var bool TODO:颜色亮度进行规格化,具体作用沿未明确,当发光强度单位非 artistic 类型时,可以设置此参数,(取值:true或false),否则固定为 false
* @var bool 是否 通过发光强度单位(流明、坎德拉、勒克斯)推荐的颜色亮度 对强度进行规格化,以模拟发光效率函数,当发光强度单位非 artistic
* 类型时,可以设置此参数,(取值:true或false),否则固定为 false
*/ */
public $normalizebycolor = self::CLOSE; public $normalizebycolor = self::CLOSE;
/** /**
* @var float 光线的发射时的扩散角度,设置为光源的半角。默认值为90。较小的值意味着在 垂直光源表面 的方向上发射的光更多,而在侧面发射的光更少,反之亦然
* @var integer TODO:温度,具体作用沿未明确,(固定取值:-1
*/ */
public $theta = 90;
public $temperature = -1;
/** /**
* @var integer 当材质作为一个光源时的ID值,(固定取值:0)
* @var integer TODO:具体作用沿未明确,(固定取值:0)
*/ */
public $id = 0;
public $temperatureNormalize = 0;
/** /**
* @var float TODO:权重,具体作用沿未明确,(取值:大于0的小数)
* @var float 光线的发射时的扩散角度,设置为光源的半角。默认值为90。较小的值意味着在 垂直光源表面 的方向上发射的光更多,而在侧面发射的光更少,反之亦然
*/ */
public $importance = 1;
public $theta = 90;
/** /**
* @var integer TODO:温度,具体作用沿未明确,(固定取值:-1
* @var integer 当材质作为一个光源时的ID值,(固定取值:0
*/ */
public $temperature = -1;
public $id = 0;
/** /**
* @var integer TODO:具体作用沿未明确,(固定取值:0)
* @var float TODO:权重,具体作用沿未明确,(取值:大于0的小数
*/ */
public $temperatureNormalize = 0;
public $importance = 1;
/** /**
* @var string 直接光采样类型,(固定取值:AUTO) * @var string 直接光采样类型,(固定取值:AUTO)
@ -73,6 +80,7 @@ class Emission extends BaseCfg
* @var string 输出的图片的色值以何种方式表示(固定取值:"float" * @var string 输出的图片的色值以何种方式表示(固定取值:"float"
*/ */
public $storage; public $storage;
} }
?> ?>

2
src/scene/render/cache/VisibilityMapCache.php

@ -50,7 +50,7 @@ class VisibilityMapCache extends BaseCfg
public $visibilityTargethitrate = 0.99; public $visibilityTargethitrate = 0.99;
/** /**
* @var integer TODO:具体作用尚未明确(默认取值:0)
* @var integer TODO:可见范围(半径),具体作用尚未明确(默认取值:0)
*/ */
public $visibilityRadius = 0; public $visibilityRadius = 0;

Loading…
Cancel
Save