虚拟现实技术ppt课件第6章.ppt
《虚拟现实技术ppt课件第6章.ppt》由会员分享,可在线阅读,更多相关《虚拟现实技术ppt课件第6章.ppt(128页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、虚拟现实技术主讲:杨文晖主讲:杨文晖6 动态感知虚拟现实节点在在VRML中,最具特色的中,最具特色的“节点节点”就是具有动态、就是具有动态、交互和感知特性的节点,其中包括交互和感知特性的节点,其中包括1.TimeSensor时间传感器节点2.动画插补器节点3.触摸节点4.感知节点等。动画插补器节点在在VRML中,动画插补器节点可以实现模拟大干中,动画插补器节点可以实现模拟大干世界万物的变化。包括的动画控制节点有世界万物的变化。包括的动画控制节点有:1.PositionInterpolator位置插补器2.OrientationInterpolator朝向插补器节3.ScalarInterpol
2、ator标量插补器节点4.ColorInterpolator颜色插补器节5.CoordinateInterpolator坐标插补器6.NormalInterpolator法线插补器节点触摸节点VRML触摸触摸节点在路由的作用下,点在路由的作用下,动画插画插补器器节点点联合使用可以合使用可以产生更加生生更加生动、逼真的、逼真的动态交交互效果,使互效果,使观测者有身者有身临其境的感其境的感觉。触摸。触摸节点有:点有:1.由TouchSensor触摸传感器节点2.PlaneSensor平面检测器节点3.CylinderSensor圆柱检测器节点4.SphereSensor球面检测器节点感知节点VRM
3、L感知感知节点已具有初点已具有初级智能作用,是智能作用,是VRML最最具代表性具代表性节点点,也是非常重要的也是非常重要的节点。感知点。感知节点点包括:包括:1.VisibilitySensor能见度传感器节点2.ProximtitySensor亲近度传感器节点3.Collision碰撞传感器节点6.1 时间传感器感器节点点在现实世界中,万物的变化往往是自动的,而且是有一定在现实世界中,万物的变化往往是自动的,而且是有一定规律的,即不是随人的意志而改变。这就需要在规律的,即不是随人的意志而改变。这就需要在VRML虚拟虚拟世界中,创建出世界中,创建出能自动变化而不需要人为改变的造型能自动变化而不
4、需要人为改变的造型。我们可以通过我们可以通过设定时间按某种规律变化来控制造型变化设定时间按某种规律变化来控制造型变化,而控制时间按某种规律变化最常见的就是时间传感器。而控制时间按某种规律变化最常见的就是时间传感器。TimeSenor时间传感器节点的作用就是时间传感器节点的作用就是1.创建一个虚拟时钟,2.并对其他节点发送时间值,3.控制VRML立体空间的动态对象的开始、变化和结果过程的时间,4.实现空间物体造型的移动、变色、变形等自动变化。TimeSensor时间传感器又包含感器又包含绝对时间(Absolute Time)和和部分部分时间(Fractional Time)两个概念。两个概念。绝
5、对时间是以秒为单位计算的。在绝对时间内,1秒发生在绝对日期的时间经过1秒之后,如2019年6月16日08点58分59秒,经过1秒钟变为2019年6月16日08点59分。部分时间又称相对时间,是空间物体运动从某一时刻0.0开始运动一直到1.0为止。从0.0时刻到1.0时刻称为相对时间,相对时间的差可以是绝对时间的30秒,10分钟或1小时等,这段时间差也称为动态对象的运动周期。TimeSensor时间传感器节点在时间传感器节点在VRML中中并不产生任何造型和并不产生任何造型和可视效果可视效果。其作用只是。其作用只是向各插补器节点输出事件向各插补器节点输出事件,以使插补,以使插补器节点产生所需要的动
6、画效果。器节点产生所需要的动画效果。该节点可以包含在任何组节点中作为子节点,但独立于所选该节点可以包含在任何组节点中作为子节点,但独立于所选用的坐标系。用的坐标系。TimeSensor时间传感器感器节点点语法法结构构Group组节点组节点Background背景节点背景节点TimeSensor时间传感器节点时间传感器节点各种插补器节点各种插补器节点ROUTE路由路由Inline内联节点内联节点TimeSensor节点点语法法TimeSensor enable TRUE#exposedField SFBool startTime 0.0#exposedField SFTime stopTime
7、0.0#exposedField SFTime cycleInterval 1.0#exposedField SFTime loop FALSE#exposedField SFBool isActive#eventOut SFTime Time#eventOut SFTime cycleTime#eventOut SFTime fraction_changed#eventOut SFFloat 域名和域值详解域名和域值详解cycleInterval域的域域的域值定义了一个时间长度,用来说 明这个时间传感器从00时刻到10时刻之间的周期间隔,单位为秒。该域值必须大于0.0,其默认值为1.0秒。E
8、nabaled 域的域域的域值定义了时间传感器的打开或关闭。该域值为布尔量。若为TRUE,时间传感器被打开;若为FALSE时,时节传感器被关闭。其默认值为TRUE。loop域的域的值定义了时间传感器是否循环输出。该域值为布尔量。如果为TRUE,则时间传感器会自动循环,一直到停止时间为止;如果为FALSE,时间传感器不循环,只经过一个周期后,就会自动停止。其默认值为FALSE。(4)startTime域的域的值定义了时间传感器开始输出事件的时间(绝对时间)。该域值的默认值为00秒。(5)stopTime域的域的值定义了时间传感器停止输出事件的时间(绝对时间)。该域值的默认值为00秒。上述上述st
9、artTime和和stopTime,cycleInterval和和loop域域值共共同控制着同控制着时间传感器的事件感器的事件输出。当出。当这4个域同个域同时使用使用时,根据,根据这4个域个域值之之间的关系,决定的关系,决定时间传感器的工作状感器的工作状态。6.2 VRML动画控制画控制节点点在在VRML中,动画控制节点是用来中,动画控制节点是用来实现动画效果实现动画效果的,在现实的,在现实世界中,万物都是在变化着的,如太阳的升落,树叶由绿变世界中,万物都是在变化着的,如太阳的升落,树叶由绿变黄等,这些都是自然界中实现的动画效果。在黄等,这些都是自然界中实现的动画效果。在VRML中也可中也可以
10、实现同样动画效果,使以实现同样动画效果,使VRML世界更加生动、真实。世界更加生动、真实。VRML提供了多个用来控制动画的插补器。提供了多个用来控制动画的插补器。插补器插补器(Interpolator)节点节点是为线性关键帧动画而设计的,其采用一组关键数值,且每个关键值对应一种状态。这个状态允许以各种形式表示,如SFVec3f 或 SFColor,浏览器会根据这些状态生成连续的动画。一般来说,浏览器在两个相邻关键帧之间生成的连续帧是线性的。插补器节点可根据其所插值的类型不同分为插补器节点可根据其所插值的类型不同分为6种:种:位置插补器(PositionInterpolator)朝向插补器(Or
11、ientationInterpolator)颜色插补器(ColorInterpolator)标量插补器(ScalarInterpolator)。坐标插补器(CoordinateInterpolator)法线插补器(NormalInterpolator)6.2.1 PositionInterpolator位置插位置插补器器节点点PositionInterpolator位置插位置插补器器节点是点是空间造型位置移动节点,用来描述一系列用于动画的关键值,使物体移动形成动画。该节点不创建任何造型,在一组SFVec3f值之间进行线性插值,适合于对于平移进行插值PositionInterpolator位置插
12、位置插补器器节点点语法法结构如构如图Group组节点组节点Background背景节点背景节点TimeSensor时间传感器节点时间传感器节点PositionInterpolator位置位置插补器节点插补器节点ROUTE路由路由Inline内联节点内联节点PositionInterpolator key#exposedField MFFloat keyValue#exposedField MFVec3f set_faction#eventIn SFFloat value_changed#eventOut SFVec3f域名和域值详解域名和域值详解(1)key域的域的值 定义了一张变化时刻关键值
13、列表。每一个时间值都代表全部动态时间中的一个相对时间,每个时刻值一般在0.0与1.0之间,并且由0依次到1。然而关键时刻值可以是任意大小的正值或负值,但必须以递增的顺序排列,其默认值是一张空列表。(2)keyValue域的域的值 定义了一组三维坐标值列表。每一组坐标值都对应key域值中的一个相对时间段,其默认值是一张空列表。事件说明事件说明(1)set_fraction为入事件(eventIn),当接收到一个时刻值时,PositionInterpolator节点计算出基于关键位置表和相关的关键时刻的一个位置,并通过value_changed事件出口输出新的位置列表。(2)value_chang
14、ed为出事件(eventOut),将信息传送给目标节点,传递内容为一组方位值。为了更好的理解、掌握和控制动画的为了更好的理解、掌握和控制动画的插补器实现插补器实现动画过程动画过程,结合下面实例,结合下面实例将动画所需时间传感器相对时间的逻辑值和空间坐标的位置值对应起来,如图6-3所示。再结合空间物体造型的立体空间坐标示意图,如图6-4所示,可以更好的理解和掌握VRML具有动态 交互的各个节点。keykeyValue0.0 0 0 0#从坐标原点出发0.2 0 0 -200.4 8 5 -200.5 8 -5 -20#经过曲折路径0.6-8 -5 -200.8-8 5 -200.9 0 0 -2
15、001.0 0 0 0#返回原点相对时间的逻辑值相对时间的逻辑值 空间坐标的位置对应值空间坐标的位置对应值 key 0.0keyValue(0 0 0)(0 0 -200)keyValue(8 5 -20)keyValue(8 -5 -20)keyValue(-8 -5 -20)keyValue(-8 5 -20)keyValuekeyValue(0 0-20)key 0.2图图6-4 6-4 立体空间物体造型移动轨迹的立体空间坐标示意图立体空间物体造型移动轨迹的立体空间坐标示意图 使用位置插使用位置插补补器器节节点,引入点,引入VRML飞飞碟空碟空间间造型;造型;在在时间传时间传感器与位置插
16、感器与位置插补补器共同作用下,使器共同作用下,使飞飞碟碟沿着指定路径沿着指定路径飞驰飞驰;从坐;从坐标标原点出原点出发发,经过经过曲折曲折的路径最后返回原点,并循的路径最后返回原点,并循环环往复运行。往复运行。实实例例 6-1路由把每一个路由把每一个节节点点联联系起来,其中,系起来,其中,fraction_changed为时间传为时间传感器的出事件感器的出事件传传送送给给位位置插置插补补器器节节点的点的set_fraction入事件,然后再由位置入事件,然后再由位置插插补补器器节节点的点的value_changed出事件出事件传递给传递给立体空立体空间间造型造型飞飞碟中坐碟中坐标变换节标变换节
17、点的暴露域点的暴露域set_translation入入时间时间,从而,从而实现飞实现飞碟的碟的飞飞行。行。飞飞碟如何运碟如何运动动?范例范例6-26.2.2 0rientationInterpolator朝向插朝向插补器器节点点0rientationInterpolator朝向插朝向插补器器节点是点是方位方位变换节点,点,用来描述一系列在动画中使用的旋转值。该节点不创建任何造型,可以在不同时刻旋转到所对应的方位(朝向)。通过使用该节点,可以使造型旋转。orientationInterpolator朝向插朝向插补器器节点点语法法结构构Group组节点组节点Background背景节点背景节点Ti
18、meSensor时间传感器节点时间传感器节点0rientationInterpolator位置插补器节点位置插补器节点ROUTE路由路由Inline内联节点内联节点OrientationInterpolator节点点语法法OrientationInterpolator key#exposedField MFFloat keyValue#exposedField MFVec3f set_faction#eventIn SFFloat value_changed#eventOut SFVec3f 域名和域值详解域名和域值详解(1)key域的域域的域值 定义了一组相对时间间隔的时间关键值。时间值一般
19、在0.0和1.0之间,并且由0依次到1以递增的顺序排列。其默认值是一张空列表。(2)keyValue域的域域的域值 定义了一个三维旋转关键值的列表。每一个旋转关键值是一个4个值的组,前3个值指定了一个旋转轴的X、Y和Z分量,第4个值指定了旋转轴的一个旋转角度。其默认值是一张空列表。(1)set_fraction 为入事件(eventIn),当接收到一个时刻值时,OrientationInterpolator朝向插补器节点根据关键时刻列表和其对应关键旋转列表计算出一个关键旋转子列表,并通过value_changed事件出口输出新算出的旋转列表。(2)value_changed 为出事件(even
20、tOut),把信息传送给目标节点,传递内容为一组方位值。在蓝色背景下,使用时间传感器节点、内联节点在蓝色背景下,使用时间传感器节点、内联节点和朝向插补器节点使飞船沿和朝向插补器节点使飞船沿Y轴旋转轴旋转180,且循环,且循环执行。执行。vrml 6-3.wrl6.2.3 ScalarInterpolator 标量插量插补器器节点点ScalarInterpolator标量插量插补器器节点是点是强度度变换动态节点,描述的是在点,描述的是在动画中使用的一系列关画中使用的一系列关键值。该节点不点不创建任何造型,在一建任何造型,在一组SFFloat值之之间进行行线性插性插值,这个插个插值适合于用适合于用
21、简单的浮点的浮点值定定义的任何参数。的任何参数。使用使用ScalarInterpolator标量插量插补器器节点和点和TimeSensor时间传感器感器节点来改点来改变光光线节点中的点中的Intensity域的域域的域值(光光线强度度),使光,使光线强度随度随时间的改的改变而而变化,化,实现动态效果。效果。ScalarInterpolator标量插量插补器器节点点语法法结构构Group组节点组节点Background背景节点背景节点TimeSensor时间传感器节点时间传感器节点ScalarInterpolator标量插补器节点标量插补器节点ROUTE路由路由Inline内联节点内联节点Dir
22、ectionalLight方向光源节点方向光源节点ScalarInterpolator节点点语法法ScalarInterpolator key#exposedField MFFloat keyValue#exposedField MFVec3f set_faction#eventIn SFFloat value_changed#eventOut SFVec3f 域名和域值详解域名和域值详解(1)key域的域域的域值 提供了一组时间关键值列表,每个时间值代表一个相对时间段的值,该时间值一般在0.0和1.0之间,但必须以递增的顺序排列。其默认值是一张空列表。(2)keyValue域的域的值 指定了
23、一系列三维坐标值。每一组坐标值都对应key域的域值中的一个相对时间段的值。其默认值为一个空的序列。(1)set_fraction 为入事件(eventIn),当收到一个时刻值时,ScalarInterpolator节点根据关键值的序列和它们对应的关键时刻值,计算一个浮点值,并通过value_changed事件出口输出计算后的浮点值。(2)value_changed 为出事件(ewntOut),它把信息传送给目标节点,传递内容为一组方位值。ScalarInterpolator节点点还可以用来控制可以用来控制VRML造型的造型的透明度,通透明度,通过控制控制 Mateirial 节点的点的 tra
24、nsparency 域域值,使造型的透明度改,使造型的透明度改变vrml 6-4.wrl在立体空在立体空间背景下,利用方背景下,利用方向光源向光源节点、点、时间传感器、感器、内内联节点和点和标量插量插补器器节点,点,使平行光源的光照使平行光源的光照强度度发生生变化,化,创建建动态视觉效果效果vrml 6-5.wrl让空空间球体的透明度球体的透明度发生生变化,从而使化,从而使哑铃的可的可见度也度也发生生变化化6.2.4 ColorInterpolator颜色插色插补器器节点点ColorInterpolator颜色插色插补器器节点是用来表示点是用来表示颜色色间插插值的的节点,使立体空点,使立体空间
25、场景与造型景与造型颜色色发生生变化化。该节点并不点并不创建造型,在建造型,在VRML场景中是看不景中是看不见的。的。该节点可以作点可以作为任何任何编组节点的子点的子节点,但又独点,但又独立于所使用的坐立于所使用的坐标系,即不受坐系,即不受坐标系的限制。系的限制。ColorInterpolator颜色插色插补器器节点点语法法结构构Group组节点组节点Background背景节点背景节点TimeSensor时间传感器节点时间传感器节点ColorInterpolator颜色插补器节点颜色插补器节点ROUTE路由路由Inline内联节点内联节点DirectionalLight方向光源节点方向光源节点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟现实 技术 ppt 课件
限制150内