WEB开发网
开发学院WEB开发Jsp X3D实战基础讲座之七 阅读

X3D实战基础讲座之七

 2008-01-05 20:06:07 来源:WEB开发网   
核心提示:第七讲 光源处理在X3D场景空间中,可以使用点光源节点(PointLight)、平行光源节点(DirectionalLight)和聚光性光源节点(SpotLight)来处理造型物体的光照明亮程度,X3D实战基础讲座之七,本讲就来介绍这三个节点的属性及其使用方法,一、 点光源节点(PointLight)PointLigh
  第七讲 光源处理

在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个值是控制随着距离的增加,光线的线性平方衰减程度。

简单的示例代码如下:

X3D实战基础讲座之七

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

X3D实战基础讲座之七

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

X3D实战基础讲座之七

  结果如下图所示:

X3D实战基础讲座之七

进入讨论组讨论。

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

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

X3D实战基础讲座之七

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

   direction --灯光方向,默认值为[0 0 -1]
   intensity -- 灯光亮度,默认值为1,取值范围为0~1
   beamWidth -- 内部立体角(弧度) ,默认值为1.570796(180度),假如beamWidth > cutOffAngle, beamWidth 会重新设为和 cutOffAngle相等。
   cutOffAngle --外部立体角(弧度),默认值为0.785398(90度)。

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

X3D实战基础讲座之七

  示例代码如下:

X3D实战基础讲座之七

  结果如下图所示:

X3D实战基础讲座之七

三、 平行光源节点(DirectionalLight)

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

属性 含义 默认值 使用说明 on 光源是否开关 True 为True时打开光源,为False时关闭光源 color 光的颜色 1 1 1 指定光的颜色,它会影响对象的实际颜色显示效果 intensity 灯光的亮度 1 取值范围为0~1 ambientIntensity 对环境光影响程度 0 取值范围为0~1,它的值越大,对环境光影响也越大

示例如下:

X3D实战基础讲座之七

  结果如下图所示:

X3D实战基础讲座之七

至此,我们对X3D场景的光源有了一定的了解,在下一讲中,我们将讨论纹理映射。

进入讨论组讨论。

Tags:XD 实战 基础

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接