推荐给好友 上一篇 | 下一篇

七、场景的光照效果

 

一、X3D-Edit安装配置

二、文本的显示

三、X3D2D图形的构造

四、基本3D图形的创建方法

五、立体造型的几何变换

六、视点和导航的设置

七、场景的光照效果

八、纹理映射

九、X3D场景的多媒体效果

十、X3D的动画效果

十一、X3D的交互技术

十二、X3D的嵌入脚本编程技术

十三、X3D的嵌入脚本Java编程技术

十四

七、场景的光照效果


X3D场景空间中,可以使用点光源节点(PointLight)、平行光源节点(DirectionalLight)和聚光性光源节点(SpotLight)来处理造型物体的光照明亮程度。


下面介绍这三个节点的属性及其使用方法。


一、 点光源节点(PointLight)


PointLight 是一个点光源,它向所有的方向发射光线。光线照亮所有的几何对象,也不会被几何形体遮挡而形成阴影。其主要属性如下表所示:












































属性


含义


默认值


使用说明


on


光源是否开关


True


True时打开光源,为False时关闭光源


color


光的颜色


1 1 1


指定光的颜色,它会影响对象的实际颜色显示效果


location


光源所在的位置


0 0 0


光源的位置影响光的强弱


intensity


灯光的亮度


1


取值范围为0~1


ambientIntensity


对环境光影响程度


0


取值范围为0~1,它的值越大,对环境光影响也越大


radius


光源影响半径


100


以光源为中心的灯光效果的最大半径


attenuation


光线衰减参数


1 0 0


由三个值构成:第1个值控制光源在照明球体中亮度的一致程度,第2个值控制随着距离的增加,光线的线性衰减程度,最后1个值是控制随着距离的增加,光线的线性平方衰减程度。


简单的示例代码如下:(见25.x3d25.x3dv25.wrl



说明:我们先在点光源位置处构造一个与光源颜色相同的小球,然后在(3,0,0)处构造一个圆柱体。结果如下图所示,注意圆柱体的颜色。



若在光源和圆柱体之间在加一个相同圆柱体,试比较这两上圆柱体的效果。代码如下:(见26.x3d26.x3dv26.wrl



 


结果如下图所示:



 


二、聚光性光源节点(SpotLight)


SpotLight 是一个聚光性光源节点。它只照亮指定圆锥范围内的几何体。它的主要属性如下:



其中大部分属性与PointLight节点含义相同,所不同的有:


direction --灯光方向,默认值为[0 0 -1]


intensity -- 灯光亮度,默认值为1,取值范围为0~1


beamWidth -- 内部立体角(弧度) ,默认值为1.570796(180),如果beamWidth > cutOffAngle, beamWidth 会重新设为和 cutOffAngle相等。


cutOffAngle --外部立体角(弧度),默认值为0.785398(90)


上述参数含义和关系可以用下图来表示:



示例代码如下:(见27.x3d27.x3dv27.wrl


结果如下图所示:



三、 平行光源节点(DirectionalLight)


DirectionalLight 创建了一个平行光线来来照亮几何体。由于光线从无限远处平行照射,所以不需要考虑光源的位置。DirectionalLight 节点的光不随距离变化而衰减,其主要属性如下表所示:





























属性


含义


默认值


使用说明


on


光源是否开关


True


True时打开光源,为False时关闭光源


color


光的颜色


1 1 1


指定光的颜色,它会影响对象的实际颜色显示效果


intensity


灯光的亮度


1


取值范围为0~1


ambientIntensity


对环境光影响程度


0


取值范围为0~1,它的值越大,对环境光影响也越大


示例如下:(见28.x3d28.x3dv28.wrl


结果如下图所示:



 

评分:0

我来说两句

seccode