明经通道 外部定义命令  
light
 

创建、修改和删除光源和照明效果(外部定义: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

明经通道 版权所有 未经许可 不得传播

 评论