第8章 VRML(虚拟现实建模语音)光照效果

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章 光照效果
现实生活中缺少不了光,到处都有光的照射, 如阳光、灯光等。在VRML中也可以通过添加不同 的光照效果来丰富VRML场景的创建。在VRML中 添加并控制光照是通过PointLight节点、 DirectionalLight节点和SpotLight节点来实现的。本 章将介绍这三个节点,以及在VRML场景中添加光 照效果的方法。
8.2 节点介绍
8.2.3 SpotLight节点——聚光性光源
光线的发射方式,如同舞台上的聚光灯。光源在虚拟现实中有一人位 置,朝着特定的方向照射,但是光线p被限制在g一个类似圆锥体的空 间中,圆锥体的顶点就是光源的位置,只有在此圆锥体空间内才会被 照亮,其他的部分则不会被光线照到。可以利用此节点的特性来构建 一些特别的虚拟对象,如展示架上光线的投影、舞台上的聚光灯等。 其节点描述如下:
ambientIntensity 0 attenuation beamWidth color cutOffAngle direction intensity location 1
1 0
1 1
1 1
0 0
8.2 节点介绍
字段: ambientIntensity: 控制光源对于虚拟现实中虚拟物件四周光线的影 响程度。默认值为0,表示完全不受影响,最大值为1.0,表示光源对 环境光线的影响很大。 attenuation: 光线的衰减速方式。第一个值表示光线维持一定,第 二个值控制光线的衰减呈线性方式(与距离成反比),第三个值则让 光线 以二次式的方式衰减(与距离平方成反比)。默认值为(1 0 0 )。 beamWidth: 该字段是控制圆锥体的中心轴到圆锥体的边的角度,单 位是弧度。在这个圆锥体中,光源是维持一定的,不会衰减。它的默 认值是 pi/2。 color: 光源颜色
8.1 基本概念
在VRML中,可以用Material、Color和纹理节点设置造型的颜色,来 自顶灯的白色光线照射到有色造型上时,每个造型将反射光中的某些 颜色,这一点根现实生活中一样。顶灯是一个白色的光源,不能设置 颜色。一个有色光源照射到一个有色的造型上时,情况比较复杂。例 如一个蓝色物体只能反射蓝色的光线,而一束红色的光线中又不含有 蓝色的部分,当一束红色的光线照射到一个蓝色的造型上时,由于没 有蓝色光线可以反射,他将显示黑色。
8.1 基本概念
8.1.1 光源
光线的产生需要光源。光源分为点光源和平行光源。 VRML对现实世界中光源的模拟实质上是一种对光影的计算。现实世界 的光源是指各种能发光的物体,但是,在VRML世界中,你看不到这样 的光源。VRML是通过对物体表面明暗分布的计算,是物体同环境产生 明暗对比,这样,物体看起来就像是在发光。 光源的另一点区别在于阴影。在VRML中的光源系统中不会自动产生 阴影,如果要对静态物体作阴影渲染,必须先人工计算出阴影的范围 ,模拟阴影。
8.1 基本概念
8.1.2 光源颜色
光源颜色由一个RGB颜色控制,与材料设置的颜色相似。光源发出的 光线的颜色跟光源的颜色相同。比如,一个红色的光源发出的光线是 红色的。在现实中,一个白色的光源照射到一个有色的物体表面,将 发生两种现象,而人所能看到的只是其中的反射现象,另一种现象就 是吸收光线,它导致光强的衰弱。反射光的颜色与物体表面的颜色有 关,一束白色的光线照射到一个红色的物体表面,看到的反射是红色 的。这是因为白色的光线由多种颜色的光组成,物体吸收了其中除红 色外的所有光线,红色则被反射。但是如果物体表面是黑色的,他将 不反射任何光线。
8.2 节点介绍
8.2 节点介绍
ExposedField ExposedField ExposedField ExposedField SFFloat SFFloat SFColor SFVec3f intensity 1.0 ambientIntensity 0.0 color 1.0 1.0 1.0 antenuation 1.0 0.0 0.0
8.1 基本概念
8.1.3 光线
现实中物体表面的亮度由直接照射它的光源的强度和环境中各种物体 所反射的光线的多少决定,处于真空中的单个物体由于没有漫发射产 生,它的亮度只由直接照射它的光线的强度决定。但是在一间没有直 接光源照射的房间里,有时你也可能看到其中的物体,这是因为各种 物体的反射光线在物体之间发生了多次复杂的反射和吸收,产生了环 境光线,他的颜色是白色的。同样,在VRML中可以模拟直接光线和 环境光线所产生的效果。为了控制环境光线的多少,对VRML提供的 光源节点,可以设置一个环境亮度值,如果该值高则表示VRML世界 中产生的环境光线较多。
8.2 节点介绍
8.2.2 DirectionalLight节点——方向性光源
描述来自无穷远的平行光线朝着特定的方向照在某个虚拟对象上。 它最大的特点是具有方向性,能够照亮某个特定的虚拟对象,必须 顺着光的方向才能清楚地看到这个虚拟对象,从其他方向看就觉得 比较暗。 其节点描述如下: DirectionalLight{ ExposedField SFFloat ambientIntensity 0 ExposedField SFColor color 111 ExposedField SFVec3f direction 0 0 –1 ExposedField SFFloat intensity 1
8.2 节点介绍
字段: ambientIntensity: 控制光源对于虚拟现实中虚拟物件四周光线的影 响程度。默认值为0,表示完全不受影响,最大值为1.0,表示光源对 环境光线的影响很大。 Color: 控制颜色。 Intensity: 控制光源的光线强度。 Direction: 控制光线的方向。方向是由原点朝向特定的一个点所构成 。例如,(0,1,0)朝向+y轴,而默认值(0,0,-1)则是朝向-z 。 Intensity: 控制光线强度。 on: 开关。为TRUE时,DirectionalLight能够照亮它父节点所包含的 任何子节点,而对其他节点不起作用。
8.2 节点介绍
Direction: 定义圆锥体中心轴的方向。 Intensity: 控制光线强度。 Location: 控制光线的方向。方向是由原点朝向特定的一点所构成。 On: 开关。为TRUE时,DirectionalLight能够照亮它父节点所包含的任 何子节点,而对其他节点不起作用。 Radius: 定义光线可以发射的距离。这个距离如同球体的半径,光源 在球心。默认值是100。 该节点各域的作用描述如图8.2.3:
Biblioteka Baidu
} 字段: ambientIntensity: 控制光源对于虚拟现实中虚拟物件四周光线的影 响程度。默认值为0,表示完全不受影响,最大值为1.0,表示光源对 环境光线的影响很大。
8.2 节点介绍
Attenuation: 控制光线衰减的方式。第一个值表示光线维持一定, 不会衰减,第二个值控制光线的衰减呈线性方式(与距离成反比) ,第三个值则让光线以二次式的方式衰减(与距离平方成反比), 而第三个值是最接近现实世界的,也是最耗内存最慢的一种方式。 默认值为(1,0,0) Color: 以RGB三原色控制光线颜色,默认值为(1,1,1) Intensity: 控制光源的明亮程度。默认值为1.0,最强,若为0表示 光源不发射光线。 Location: 定义局域坐标系统下光源的位置, On: 表示光线的开与关。 Radius: 定义光线可以发距离。这个距离如同一个球体的半径,光 源在球心。默认值是100。
8.2 节点介绍
8.2.1 PointLight节点——点光源
是一个点光源,光线来自于一个点,光线由此点朝四面八方呈辐射状 发散出去。节点可以控制光源的位置及光线的强度和颜色,使虚拟现 实不再黑暗,可以用来模拟太阳和汽车大灯等类似点光源的发光物, 使虚拟现实成为一个光明的现实。 其节点描述如下: PointLight{ ExposedField SFBool on TRUE ExposedField SFVec3f location 0.0 0.0 0.0 ExposedField SFFloat radius 100.0
8.2 节点介绍
SpotLight{ ExposedField ExposedField 0 ExposedField 1.570796 ExposedField 1 ExposedField 0.785398 ExposedField 1 ExposedField ExposedField 0
SFFloat SFVec3f SFFloat SFColor SFFloat SFVec3f SFFloat SFVec3f
相关文档
最新文档