创建、修改和删除光源和照明效果(外部定义:render ARX 应用程序)
(c:light mode [options])
参数
mode
字符串,指定要执行的操作。mode 的有效值为:
A 设置和检索环境光强度
D 删除现有的光源
L 列出图形中的所有光源,或返回指定光源的定义
M 修改现有的光源
ND 创建新的平行光
NP 创建新的点光源
NS 创建新的聚光灯
R 重命名现有的光源
options
options 参数的有效值决定于 mode,因此对每种模式单独列出。
注意 此命令不允许在图纸空间中执行。
A—环境光
设置或检索环境光强度。
(c:light "A" [intensity [color ]])
参数
intensity
实数,值在 0.0 到 1.0 之间。如果 intensity 被忽略,则缺省为 1.0。
color
表,指定 RGB 颜色值。如果忽略,则缺省为 (1.0 1.0 1.0)。
示例
如下命令将环境光强度设置为 0.6:
命令: (c:light "A" 0.6)
1
忽略 intensity 参数可检索当前环境光的强度:
命令: (c:light "A")
(0.6 (1.0 1.0 1.0))
返回的强度为 0.6,颜色为 1.0 1.0 1.0。
D—删除光源
删除现有的光源。
(c:light "D" name)
参数
name
字符串,指定要删除的光源的名称。
示例
如下函数调用将删除名为“OLDLGT”的光源:
(c:light "D" "OLDLGT")
L—列出光源
列出图形中的所有光源,或返回指定光源的定义。
(c:light "L" [name])
参数
name
字符串,指定要列出的光源的名称。如果忽略 name 参数,则 c:light 列出图形中定义的所有光源。
示例
如下命令列出当前图形中定义的所有光源:
命令: (c:light "L")
("BUDLIGHT" "LIGHT01")
如下命令列出名为“LIGHT01”的光源的特性:
命令: (c:light "L" "LIGHT01")
("P" <Entity name: 4cf3ae8>1.0(26.560943.42348.6995)(0.0 0.0 0.0)
(0.705882 0.705882 0.705882) 512 nil nil 3.0 "OFF" 0 nil)
M—修改光源
修改现有的光源。
(c:light "M" name [intensity [from [to [color [shadowmapsize [hotspot [falloff [shadowsoftness [shadow [shadowobjects [month [day [hour [minute [daylight [latitude [longitude [attenuation]]]]]]]]]]]]]]]]]])
参数
“修改”模式的参数说明如下表:
LIGHT-“M”模式参数 |
|||
---|---|---|---|
参数 |
数据类型 |
说明 |
缺省值 |
name |
STR |
唯一的光源名 |
无 |
intensity |
REAL |
在 0.0 到缺省最大值之间的实数。 |
由衰减模式决定 |
from |
LIST |
光源位置 |
当前视线起点 |
to |
LIST |
光源目标 |
当前视线 |
color |
LIST |
RGB 颜色值 |
1.0, 1.0, 1.0 |
shadowmapsize |
INT |
0 到 4096 之间的整数(阴影贴图边的尺寸,单位是像素) |
0 |
hotspot |
REAL |
太阳光光束角度(必须在 1-160 区间中)。 44.0 |
44.0 |
falloff |
REAL |
光束强度衰减区的角度(必须在1-160 区间中且大于太阳光光束角度) |
45.0 |
shadowsoftness |
REAL |
0.0-10.0 区间中的实数 |
0.0 |
shadow |
STR |
阴影开关,有效值: “off” 无阴影 “on” 投射阴影 |
0.0 |
shadowobjects |
ENAME |
阴影贴图约束对象的选择 |
0.0 |
month |
INT |
1 到 12 之间的整数 |
9 |
day |
INT |
1 到 31 之间的整数 |
21 |
hour |
INT |
0 到 24 之间的整数 |
15 |
minute |
INT |
0 到 59 之间的整数 |
0 |
daylight |
STR |
夏令时开关,有效值: “off” 非夏令时 “on” 夏令时 |
“off” |
latitude |
REAL |
090 区间中的实数 |
37.62 |
longitude |
REAL |
0?80 区间中的实数 |
122.37 |
timezone |
INT |
12 到 12 之间的整数,表示当地时间与格林尼治标准时间 (GMT) 的时差。 |
8 (PST) |
attenuation |
INT |
0 = 无衰减 1 = 线性衰减 2 = 平方衰减 |
1 |
hotspot 和 falloff 参数仅适用于聚光灯。新建平行光时,它们必须设置为 nil。
如果某个参数不适用于当前修改的光源类型,或者希望该属性不受参数影响而保留当前值,则可以将该参数指定为 nil。参数列表末尾的可选参数都可以被忽略(例如,attenuation,或者 attenuation 和 timezone,或者 attenuation、timezone 和 longitude...)。
示例
如下代码将平行光“D1”的颜色改为蓝色:
(c:light "M" "D1" nil nil nil '(0.0 0.0 1.0))
ND—新建平行光
创建新的平行光。
(c:light "ND" name [intensity [from [to [color [shadowmapsize [ nil [ nil [shadowsoftness [shadow [month [day [hour [minute [daylightsavings [latitude [longitude [timezone [attenuation [shadowobjects]]]]]]]]]]]]]]]]]]])
参数
“新建平行光”模式的参数说明如下表:
LIGHT-“ND”模式参数 |
|||
---|---|---|---|
参数 |
数据类型 |
说明 |
缺省值 |
name |
STR |
唯一的光源名 |
无 |
intensity |
REAL |
0.0 到缺省最大值之间的实数 |
由衰减模式决定 |
from |
LIST |
光源位置 |
当前视线起点 |
to |
LIST |
光源目标 |
当前视线 |
color |
LIST |
RGB 颜色值 |
1.0, 1.0, 1.0 |
shadowmapsize |
INT |
0 到 4096 之间的整数(以像素点表示尺寸) |
0 |
hotspot |
REAL |
太阳光光束角度(必须在1-160 区间中) |
44.0 |
falloff |
REAL |
光束衰减区的角度(必须在 1-160 区间中且大于太阳光光束角度) |
45.0 |
shadowsoftness |
REAL |
0.0-10.0 区间中的实数 |
0.0 |
shadow |
STR |
阴影开关,有效值: “off” 无阴影 “on” 投射阴影 |
0.0 |
month |
INT |
1 到 12 之间的整数 |
9 |
day |
INT |
1 到 31 之间的整数 |
21 |
hour |
INT |
0 到 24 之间的整数 |
15 |
minute |
INT |
0 到 59 之间的整数 |
0 |
daylight |
STR |
夏令时开关,有效值: “off” 非夏令时 “on” 夏令时 |
“off” |
latitude |
REAL |
0-90 区间中的实数 |
37.62 |
longitude |
REAL |
0-180 区间中的实数 |
122.37 |
timezone |
INT |
12 到 12 之间的整数,表示当地时间与格林尼治标准时间 (GMT) 的时差 |
8 (PST) |
shadowobjects |
ENAME |
阴影贴图对象的选择 |
0.0 |
NP—新建点光源
创建新的点光源。
(c:light "NP" name [intensity [from [nil [color
[shadowmapsize [nil [nil [shadowsoftness [shadow
[attenuation[shadowobjects ]]]]]]]]]]])
参数
“新建点光源”模式的参数说明如下表:
LIGHT-“NP”模式参数 |
|||
---|---|---|---|
参数 |
数据类型 |
说明 |
缺省值 |
name |
STR |
唯一的光源名 |
无 |
intensity |
REAL |
0.0 到缺省最大值之间的实数 |
由衰减模式决定 |
from |
LIST |
光源位置 |
当前视线起点 |
color |
LIST |
RGB 颜色值 |
1.0, 1.0, 1.0 |
shadowmapsize |
INT |
到 4096 之间的整数(阴影贴图边的尺寸,以像素为单位) |
0 |
shadowsoftness |
REAL |
0.0-10.0 区间中的实数 |
0.0 |
shadow |
STR |
阴影开关,有效值: “off” 无阴影 “on” 投射阴影 |
0.0 |
attenuation |
INT |
0 = 无衰减 1 = 线性衰减 2 = 平方衰减 |
1 |
shadowobjects |
ENAME |
阴影贴图对象的选择 |
0.0 |
有三个参数不适用于点光源:to(在 from 之后)、hotspot 和 falloff(在 shadowmapsize 之后)。新建点光源时,它们必须设置为 nil。
示例
例如,如下代码新建名为 NEWPT1 的点光源。
(c:light "NP" "NEWPT1")
NEWPT1 具有缺省强度、当前衰减设置、缺省光源位置(当前观察点)和缺省颜色(白色)。
注意 点光源强度的最大缺省值由此光源的衰减设置决定。无衰减时,缺省最大强度为 1.00;线性衰减时,缺省最大强度位图形最大范围长度的两被;平方衰减时,缺省最大强度为最大范围长度两被的平方。
NS—新建聚光灯
创建新的聚光灯。
(c:light "NS" name [intensity [from [to [color [shadowmapsize [hotspot [falloff [shadowsoftness [shadow [attenuation [shadowobjects]]]]]]]]]]])
参数
“新建聚光灯”模式的参数说明如下表:
LIGHT— “NS” 模式参数 |
|||
---|---|---|---|
参数 |
数据类型 |
说明 |
缺省值 |
name |
STR |
唯一的光源名 |
无 |
intensity |
REAL |
0.0 到缺省最大值之间的实数 |
由衰减模式决定 |
from |
LIST |
光源位置 |
当前视线起点 |
to |
LIST |
光源目标 |
当前视线终点 |
color |
LIST |
RGB 颜色值 |
1.0, 1.0, 1.0 |
shadowmapsize |
INT |
0 到 4096 之间的整数(阴影贴图边的尺寸,以像素为单位) |
0 |
hotspot |
REAL |
太阳光光束角度(必须在 1-160 区间中) |
44.0 |
falloff |
REAL |
光束衰减区的角度(必须在 1-160 区间中且大于太阳光光束角度) |
45.0 |
shadowsoftness |
REAL |
0.0-10.0 区间中的实数 |
0.0 |
shadow |
STR |
阴影开关,有效值: “off” 无阴影 “on” 投射阴影 |
0.0 |
attenuation |
INT |
0 = 无衰减 1 = 线性衰减 2 = 平方衰减 |
1 |
shadowobjects |
ENAME |
阴影贴图对象的选择 |
0.0 |
示例
如下代码新建名为“GSPOT”的聚光灯。
命令: (c:light "NS" "GSPOT" 43.82 '(12.0 6.0 24.0) '(78.0 78.0 24.0) nil nil 30.0 32.0)
1
聚光灯 GSPOT 的强度为 43.82,颜色为缺省值(白色),光源位置为 (12,6,24),目标位置为 (78,78,24),收缩角为 32 度,聚光角为 30 度。
注意 聚光灯强度的最大缺省值由此光源的衰减设置决定。无衰减时,缺省最大强度为 1.00;线性衰减时,缺省最大强度为图形最大范围长度的两倍;平方衰减时,缺省最大强度为最大范围长度两倍的平方。
R—重命名光源
重命名现有的光源。
(c:light "R" old_name new_name)
参数
old_name
字符串,指定要重命名的光源的名称。
new_name
字符串,指定光源的新名称。
如下函数调用将光源“GSPOT”重命名为“HOTSPOT”:
示例
命令: (c:light "R" "GSPOT" "HOTSPOT")
1
明经通道 版权所有 未经许可 不得传播 | 评论 |