资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Slide Title,Body Text,Second level,Third level,Fourth level,Fifth level,Slide Title,Body Text,Second level,Third level,Fourth level,Fifth level,虚拟现实技术,主讲:杨文晖,虚拟现实技术课件之动态感知虚拟现实节点,第1页,6 动态感知虚拟现实节点,在,VRML,中,最具特色“节点”就是含有动态、交互和感知特征节点,其中包含,TimeSensor,时间传感器节点,动画插补器节点,触摸节点,感知节点等。,虚拟现实技术课件之动态感知虚拟现实节点,第2页,动画插补器节点,在,VRML,中,动画插补器节点能够实现模拟大干世界万物改变。包含动画控制节点有,:,PositionInterpolator,位置插补器,OrientationInterpolator,朝向插补器节,ScalarInterpolator,标量插补器节点,ColorInterpolator,颜色插补器节,CoordinateInterpolator,坐标插补器,NormalInterpolator,法线插补器节点,虚拟现实技术课件之动态感知虚拟现实节点,第3页,触摸节点,VRML,触摸节点在路由作用下,动画插补器节点联合使用能够产生愈加生动、逼真动态交互效果,使观察者有身临其境感觉。触摸节点有:,由,TouchSensor,触摸传感器节点,PlaneSensor,平面检测器节点,CylinderSensor,圆柱检测器节点,SphereSensor,球面检测器节点,虚拟现实技术课件之动态感知虚拟现实节点,第4页,感知节点,VRML,感知节点已含有初级智能作用,是,VRML,最具代表性节点,也是非常主要节点。感知节点包含:,VisibilitySensor,能见度传感器节点,ProximtitySensor,亲近度传感器节点,Collision,碰撞传感器节点,虚拟现实技术课件之动态感知虚拟现实节点,第5页,6.1,时间传感器节点,在现实世界中,万物改变往往是自动,而且是有一定规律,即不是随人意志而改变。这就需要在,VRML,虚拟世界中,创建出,能自动改变而不需要人为改变造型,。,我们能够经过,设定时间按某种规律改变来控制造型改变,,而控制时间按某种规律改变最常见就是时间传感器。,TimeSenor,时间传感器节点作用就是,创建一个,虚拟时钟,,,并对其它节点,发送时间值,,,控制,VRML,立体空间动态对象,开始、改变和结果过程时间,,,实现空间物体造型,移动、变色、变形等自动改变,。,虚拟现实技术课件之动态感知虚拟现实节点,第6页,TimeSensor时间传感器又包含绝对时间(Absolute Time)和部分时间(Fractional Time)两个概念。,绝对时间是以秒为单位计算。在绝对时间内,1秒发生在绝对日期时间经过1秒之后,如6月16日08点58分59秒,经过1秒钟变为6月16日08点59分。,部分时间又称相对时间,是空间物体运动从某一时刻0.0开始运动一直到1.0为止。从0.0时刻到1.0时刻称为相对时间,相对时间差能够是绝对时间30秒,10分钟或1小时等,这段时间差也称为动态对象运动周期。,TimeSensor时间传感器节点在VRML中并不产生任何造型和可视效果。其作用只是向各插补器节点输出事件,以使插补器节点产生所需要动画效果。,该节点能够包含在任何组节点中作为子节点,但独立于所选取坐标系。,虚拟现实技术课件之动态感知虚拟现实节点,第7页,TimeSensor,时间传感器节点语法结构,Group,组节点,Background,背景节点,TimeSensor,时间传感器节点,各种插补器节点,ROUTE,路由,Inline,内联节点,虚拟现实技术课件之动态感知虚拟现实节点,第8页,TimeSensor,节点语法,TimeSensor,enable TRUE#exposedField SFBool,startTime 0.0#exposedField SFTime,stopTime 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,虚拟现实技术课件之动态感知虚拟现实节点,第9页,域名和域值详解,cycleInterval,域域值,定义了一个时间长度,用来说 明这个时间传感器从,0,0,时刻到,1,0,时刻之间周期间隔,单位为秒。该域值必须大于,0.0,,其默认值为,1.0,秒。,Enabaled,域域值,定义了时间传感器打开或关闭。该域值为布尔量。若为,TRUE,,时间传感器被打开;若为,FALSE,时,时节传感器被关闭。其默认值为,TRUE,。,loop,域值,定义了时间传感器是否循环输出。该域值为布尔量。假如为,TRUE,,则时间传感器会自动循环,一直到停顿时间为止;假如为,FALSE,,时间传感器不循环,只经过一个周期后,就会自动停顿。其默认值为,FALSE,。,虚拟现实技术课件之动态感知虚拟现实节点,第10页,(4)startTime,域值,定义了时间传感器开始输出事件时间,(,绝对时间,),。该域值默认值为,0,0,秒。,(5)stopTime,域值,定义了时间传感器停顿输出事件时间,(,绝对时间,),。该域值默认值为,0,0,秒。,上述,startTime,和,stopTime,cycleInterval,和,loop,域值共同控制着时间传感器事件输出。当这,4,个域同时使用时,依据这,4,个域值之间关系,决定时间传感器工作状态。,虚拟现实技术课件之动态感知虚拟现实节点,第11页,6.2 VRML,动画控制节点,在,VRML,中,动画控制节点是用来,实现动画效果,,在现实世界中,万物都是在改变着,如太阳升落,树叶由绿变黄等,这些都是自然界中实现动画效果。在,VRML,中也能够实现一样动画效果,使,VRML,世界愈加生动、真实。,VRML,提供了多个用来控制动画插补器。,插补器,(Interpolator),节点,是为,线性关键帧动画,而设计,,其采取,一组关键数值,,且,每个关键值对应一个状态,。这个状态允许以各种形式表示,如,SFVec3f,或,SFColor,浏览器会依据这些状态生成连续动画,。,普通来说,浏览器在两个相邻关键帧之间生成连续帧是线性。,虚拟现实技术课件之动态感知虚拟现实节点,第12页,插补器节点可依据其所插值类型不一样分为,6,种:,位置,插补器,(PositionInterpolator),朝向,插补器,(OrientationInterpolator),颜色,插补器,(ColorInterpolator),标量,插补器,(ScalarInterpolator),。,坐标,插补器,(CoordinateInterpolator),法线,插补器,(NormalInterpolator),虚拟现实技术课件之动态感知虚拟现实节点,第13页,6.2.1 PositionInterpolator,位置插补器节点,PositionInterpolator,位置插补器节点是,空间造型位置移动节点,用来描述一系列用于动画关键值,使物体移动形成动画。,该节点不创建任何造型,在一组,SFVec3f,值之间进行线性插值,适合于对于平移进行插值,虚拟现实技术课件之动态感知虚拟现实节点,第14页,PositionInterpolator,位置插补器节点语法结构如图,Group,组节点,Background,背景节点,TimeSensor,时间传感器节点,PositionInterpolator,位置,插补器节点,ROUTE,路由,Inline,内联节点,虚拟现实技术课件之动态感知虚拟现实节点,第15页,PositionInterpolator,key#exposedField MFFloat,keyValue#exposedField MFVec3f,set_faction#eventIn SFFloat,value_changed#eventOut SFVec3f,虚拟现实技术课件之动态感知虚拟现实节点,第16页,域名和域值详解,(1)key,域值,定义了一张改变时刻关键值列表。每一个时间值都代表全部动态时间中一个相对时间,每个时刻值普通在,0.0,与,1.0,之间,而且由,0,依次到,1,。然而关键时刻值能够是任意大小正值或负值,但必须以递增次序排列,其默认值是一张空列表,。,(2)keyValue,域值,定义了一组三维坐标值列表。每一组坐标值都对应,key,域值中一个相对时间段,其默认值是一张空列表,。,虚拟现实技术课件之动态感知虚拟现实节点,第17页,事件说明,(1)set_fraction,为入事件,(eventIn),,当接收到一个时刻值时,,PositionInterpolator,节点计算出基于关键位置表和相关关键时刻一个位置,并经过,value_changed,事件出口输出新位置列表。,(2)value_changed,为出事件,(eventOut),,将信息传送给目标节点,传递内容为一组方位值。,虚拟现实技术课件之动态感知虚拟现实节点,第18页,为了更加好了解、掌握和控制动画,插补器实现动画过程,,结合下面实例,将动画所需时间传感器相对时间逻辑值和空间坐标位置值对应起来,如图,6-3,所表示。,再结合空间物体造型立体空间坐标示意图,如图,6-4,所表示,能够更加好了解和掌握,VRML,含有动态 交互各个节点。,虚拟现实技术课件之动态感知虚拟现实节点,第19页,key,keyValue,0.0,0 0 0,#,从坐标原点出发,0.2,0 0 -20,0.4,8 5 -20,0.5,8 -5 -20,#经过波折路径,0.6,-8 -5 -20,0.8,-8 5 -20,0.9,0 0 -200,1.0,0 0 0,#,返回原点,相对时间逻辑值 空间坐标位置对应值,虚拟现实技术课件之动态感知虚拟现实节点,第20页,key 0.0,keyValue(0 0 0),(0 0 -200)keyValue,(8 5 -20)keyValue,(8 -5 -20)keyValue,(-8 -5 -20)keyValue,(-8 5 -20)keyValue,keyValue(0 0-20),key 0.2,图,6-4,立体空间物体造型移动轨迹立体空间坐标示意图,虚拟现实技术课件之动态感知虚拟现实节点,第21页,使用位置插补器节点,引入VRML飞碟空间造型;在时间传感器与位置插补器共同作用下,使飞碟沿着指定路径飞驰;从坐标原点出发,经过波折路径最终返回原点,并循环往复运行。实例 6-1,虚拟现实技术课件之动态感知虚拟现实节点,第22页,虚拟现实技术课件之动态感知虚拟现实节点,第23页,路由把每一个节点联络起来,其中,fraction_changed为时间传感器出事件传送给位置插补器节点set_fraction入事件,然后再由位置插补器节点value_changed出事件传递给立体空间造型飞碟中坐标变换节点暴露域set_translation入时间,从而实现飞碟飞行。,虚拟现实技术课件之动态感知虚拟现实节点,第24页,飞碟怎样运动?范例6-2,虚拟现实技术课件之动态感知虚拟现实节点,第25页,6.2.2 0rientationInterpolator,朝向插补器节点,0rientationInterpolator,朝向插补器节点是,方位变换,节点,,用来描述一系列在动画中使用旋转值。,该节点不创建任何造型,能够在不一样时刻旋转到所对应方位,(,朝向,),。,经过使用该节点,能够使造型旋转。,虚拟现实技术课件之动态感知虚拟现实节点,第26页,orientationInterpolator,朝向插补器节点语法结构,Group,组节点,Background,背景节点,TimeSensor,时间传感器节点,0rientationInterpolator,位置插补器节点,ROUTE,路由,Inline,内联节点,虚拟现实技术课件之动态感知虚拟现实节点,第27页,OrientationInterpolator,节点语法,OrientationInterpolator,key#exposedField MFFloat,keyValue#exposedField MFVec3f,set_faction#eventIn SFFloat,value_changed#eventOut SFVec3f,虚拟现实技术课件之动态感知虚拟现实节点,第28页,域名和域值详解,(1)key,域域值,定义了一组相对时间间隔时间关键值。时间值普通在,0.0,和,1.0,之间,而且由,0,依次到,1,以递增次序排列。其默认值是一张空列表,。,(2)keyValue,域域值,定义了一个三维旋转关键值列表。每一个旋转关键值是一个,4,个值组,前,3,个值指定了一个旋转轴,X,、,Y,和,Z,分量,第,4,个值指定了旋转轴一个旋转角度。其默认值是一张空列表,。,(1)set_fraction,为入事件,(eventIn),,当接收到一个时刻值时,,OrientationInterpolator,朝向插补器节点依据关键时刻列表和其对应关键旋转列表计算出一个关键旋转子列表,并经过,value_changed,事件出口输出新算出旋转列表。,(2)value_changed,为出事件,(eventOut),,把信息传送给目标节点,传递内容为一组方位值。,虚拟现实技术课件之动态感知虚拟现实节点,第29页,在蓝色背景下,使用时间传感器节点、内联节点和朝向插补器节点使飞船沿,Y,轴旋转,180,,且循环执行。,vrml 6-3.wrl,虚拟现实技术课件之动态感知虚拟现实节点,第30页,虚拟现实技术课件之动态感知虚拟现实节点,第31页,6.2.3 ScalarInterpolator,标量插补器节点,ScalarInterpolator,标量插补器节点是,强度变换,动态节点,描述是在动画中使用一系列关键值。,该节点不创建任何造型,在一组,SFFloat,值之间进行线性插值,这个插值适合于用简单浮点值定义任何参数。,使用,ScalarInterpolator,标量插补器节点和,TimeSensor,时间传感器节点来改变光线节点中,Intensity,域域值,(,光线强度,),,使光线强度随时间改变而改变,实现动态效果。,虚拟现实技术课件之动态感知虚拟现实节点,第32页,ScalarInterpolator,标量插补器节点语法结构,Group,组节点,Background,背景节点,TimeSensor,时间传感器节点,ScalarInterpolator,标量插补器节点,ROUTE,路由,Inline,内联节点,DirectionalLight,方向光源节点,虚拟现实技术课件之动态感知虚拟现实节点,第33页,ScalarInterpolator,节点语法,ScalarInterpolator,key#exposedField MFFloat,keyValue#exposedField MFVec3f,set_faction#eventIn SFFloat,value_changed#eventOut SFVec3f,虚拟现实技术课件之动态感知虚拟现实节点,第34页,域名和域值详解,(1)key,域域值,提供了一组时间关键值列表,每个时间值代表一个相对时间段值,该时间值普通在,0.0,和,1.0,之间,但必须以递增次序排列。其默认值是一张空列表,。,(2)keyValue,域值,指定了一系列三维坐标值。每一组坐标值都对应,key,域域值中一个相对时间段值。其默认值为一个空序列,。,(1)set_fraction,为入事件,(eventIn),,当收到一个时刻值时,,ScalarInterpolator,节点依据关键值序列和它们对应关键时刻值,计算一个浮点值,并经过,value_changed,事件出口输出计算后浮点值。,(2)value_changed,为出事件,(ewntOut),,它把信息传送给目标节点,传递内容为一组方位值。,虚拟现实技术课件之动态感知虚拟现实节点,第35页,ScalarInterpolator,节点还能够用来控制,VRML,造型透明度,经过控制,Mateirial,节点,transparency,域值,使造型透明度改变,虚拟现实技术课件之动态感知虚拟现实节点,第36页,vrml 6-4.wrl,在立体空间背景下,利用方向光源节点、时间传感器、内联节点和标量插补器节点,使平行光源光照强度发生改变,创建动态视觉效果,虚拟现实技术课件之动态感知虚拟现实节点,第37页,虚拟现实技术课件之动态感知虚拟现实节点,第38页,vrml 6-5.wrl,让空间球体透明度发生改变,从而使哑铃可见度也发生改变,虚拟现实技术课件之动态感知虚拟现实节点,第39页,虚拟现实技术课件之动态感知虚拟现实节点,第40页,6.2.4 ColorInterpolator,颜色插补器节点,ColorInterpolator,颜色插补器节点是用来表示颜色间插值节点,使立体空间,场景与造型颜色发生改变,。,该节点并不创建造型,在,VRML,场景中是看不见。,该节点能够作为任何编组节点子节点,但又独立于所使用坐标系,即不受坐标系限制。,虚拟现实技术课件之动态感知虚拟现实节点,第41页,ColorInterpolator,颜色插补器节点语法结构,Group,组节点,Background,背景节点,TimeSensor,时间传感器节点,ColorInterpolator,颜色插补器节点,ROUTE,路由,Inline,内联节点,DirectionalLight,方向光源节点,虚拟现实技术课件之动态感知虚拟现实节点,第42页,ColorInterpolator,节点语法,ColorInterpolator,key#exposedField MFFloat,keyValue#exposedField MFVec3f,set_faction#eventIn SFFloat,value_changed#eventOut SFVec3f,虚拟现实技术课件之动态感知虚拟现实节点,第43页,域名和域值详解,(1)key,域域值,提供了一组时间关键值列表,每个时间值代表一个相对时间段值,该时间值普通在,0.0,至,1.0,之间,但必须以递增次序排列。其默认值是一张空列表,。,(2)keyValue,域值,指定了一系列三维坐标关键,RGB,色彩值。每个,RGB,色彩都是由在,0.0,至,1.0,区间内,3,个浮点数所表示,它们分别表示混合色中红、绿、蓝数值。每一组坐标值都对应,key,域域值中一个相对时间段值。其默认值为一张空列表,。,(1)set_fraction,为入事件,(eventIn),,当收到一个时刻值时,,ColorInterpolator,颜色插补器节点就在关键色彩值和它们对应关键时间值基础上计算出一个,RGB,色彩值,并经过,value_changed,出事件输出该,RGB,色彩值。,(2)value_changed,为出事件,(eventOut),,用来输出计算后,RGB,色彩值。,虚拟现实技术课件之动态感知虚拟现实节点,第44页,实例,6-6,利用方向光源节点、时间传感器节点、内联节点及颜色插补器节点来改变颜色,实现动态控制颜色改变效果,并在场景中利用路由控制和传递信息,虚拟现实技术课件之动态感知虚拟现实节点,第45页,vrml 6-6.wrl,虚拟现实技术课件之动态感知虚拟现实节点,第46页,虚拟现实技术课件之动态感知虚拟现实节点,第47页,vrml 6-7.wrl,虚拟现实技术课件之动态感知虚拟现实节点,第48页,虚拟现实技术课件之动态感知虚拟现实节点,第49页,虚拟现实技术课件之动态感知虚拟现实节点,第50页,6.2.5 CoordinateInterpolator,坐标插补器节点,CoordinateInterpolator,坐标插补器节点是表示,坐标插值,节点,该节点在一组,MFVec3f,值之间进行线性插值。,经过使用该节点,能够使一个造型组成坐标发生改变。同,ColorInterpolator,节点一样,,CoordinateInterpolator,节点也不创建任何造型,在,VRML,场景中也是不可见。,坐标插补器作用是,利用坐标点移动实现动画。经过使用,CoordinateInterpolator,节点,可使,VRML,中物体造型上各个坐标点形成独自运动轨迹,能够使物体造型改变运动方向。,虚拟现实技术课件之动态感知虚拟现实节点,第51页,CoordinateInterpolator,坐标插补器节点语法结构,Background,背景节点,TimeSensor,时间传感器节点,CoordinateInterpolator,颜色插补器节点,ROUTE,路由,Shape,模型节点,虚拟现实技术课件之动态感知虚拟现实节点,第52页,CoordinateInterpolator,坐标插补器节点语法,CoordinateInterpolator,key#exposedField MFFloat,keyValue#exposedField MFVec3f,set_faction#eventIn SFFloat,value_changed#eventOut SFVec3f,虚拟现实技术课件之动态感知虚拟现实节点,第53页,域名和域值详解,(1)key,域域值,提供了一组时间关键值列表,每个时间值代表一个相对时间段值。该时间值普通在,0,0,至,1,0,之间,但必须以递增次序排列。其默认值是一张空列表,1),。,(2)keyValue,域值,指定了一系列三维坐标列表。每一个坐标都包含,3,个浮点数值,分别为向量,X,、,Y,和,Z,分量。每一组坐标值都对应,key,域域值中一个相对时间段值。其默认值为一张空列表,。,(1)set_fraction,为入事件,(eventIn),,当收到一个时刻值时,,CoordinateInterpolator,节点就依据关键时刻列表和它们相对应关键坐标子列表计算出一张坐标子列表,并经过,value_changed,出事件输出新坐标列表。,(2)value_changed,为出事件,(eventOut),,用来输出计算后新坐标列表值。,虚拟现实技术课件之动态感知虚拟现实节点,第54页,实例,6-8,使用坐标插补器节点和时间传感器节点,并利用面节点控制面尺寸大小,从而使立体空间造型产生循环运动动画效果,也能够使造型畸形改变。,虚拟现实技术课件之动态感知虚拟现实节点,第55页,vrml 6-8.wrl,虚拟现实技术课件之动态感知虚拟现实节点,第56页,虚拟现实技术课件之动态感知虚拟现实节点,第57页,虚拟现实技术课件之动态感知虚拟现实节点,第58页,vrml 6-9.wrl,虚拟现实技术课件之动态感知虚拟现实节点,第59页,虚拟现实技术课件之动态感知虚拟现实节点,第60页,虚拟现实技术课件之动态感知虚拟现实节点,第61页,6.2.6 NormalInterpolator,法线插补器节点,NormalInterpolator,法线插补器节点能够改变法向量,Normal,节点中,vector,域域值。,vector,域域值定义了一个法向量列表,(X Y Z),,法向量,Normal,节点是面节点和海拔栅格节点中一个节点。,NormalInterpolator,法线插补器节点在时间传感器配合下,产生虚拟世界各种逼真动感效果。,虚拟现实技术课件之动态感知虚拟现实节点,第62页,NormalInterpolator,法线插补器节点语法结构,Background,背景节点,TimeSensor,时间传感器节点,NormalInterpolator,颜色插补器节点,ROUTE,路由,Shape,模型节点,虚拟现实技术课件之动态感知虚拟现实节点,第63页,NormalInterpolator,法线插补器节点语法,NormalInterpolator,key#exposedField MFFloat,keyValue#exposedField MFVec3f,set_faction#eventIn SFFloat,value_changed#eventOut SFVec3f,虚拟现实技术课件之动态感知虚拟现实节点,第64页,域名和域值详解,(1)key,域域值,提供了一组时间关键值列表,每个时间值代表一个相对时间段值。该时间值普通在,0.0,至,1.0,之间,但必须以递增次序排列。其默认值是一张空列表,。,(2)keyValue,域值,指定了一系列法向量列表。每一个坐标都包含,3,个浮点数值,分别为向量,X,、,Y,和,Z,分量。每一组坐标值都对应,key,域域值中一个相对时间段值。其默认值为一个空列表,。,(1),set_fraction,为入事件,(eventIn),,当收到一个时刻值时,,NormalInterpolator,法线插补器节点就依据关键时刻列表和它们相对应关键法向量列表计算出一个法向量子列表,经过,如,e changed,出事件输出新法向量列表。,(2),value_changed,为出事件,(eventOut),,用来输出计算后新法向量列表值。,虚拟现实技术课件之动态感知虚拟现实节点,第65页,实例,6-10,在蓝色立体空间背景下,利用模型节点、面节点、时间传感器节点及法线插补器节点使立体空间造型两个垂直面在法向量控制下产生改变效果,虚拟现实技术课件之动态感知虚拟现实节点,第66页,vrml 6-10.wrl,虚拟现实技术课件之动态感知虚拟现实节点,第67页,虚拟现实技术课件之动态感知虚拟现实节点,第68页,虚拟现实技术课件之动态感知虚拟现实节点,第69页,6.3 VRML,触摸检测器节点,实现,VRML,交互功效,需要设计触动检测器或传感器。,在,VRML,虚拟世界中,用户与虚拟现实世界之间交互是经过一系列,检测器节点,来实现,经过使用这些检测器节点,使浏览器感知用户各种操作,比如开门、旋转、移动和飞行等。这么用户就能够和,VRML,虚拟世界中三维对象直接进行交互。,触动检测器是,用来检测用户触动动作,,其中包含,TouchSensor,节点,Planesensor,节点,CylinderSensorr,节点,SphereSensor,节点等,虚拟现实技术课件之动态感知虚拟现实节点,第70页,6.3.1 TouchSensor,触摸传感器节点,TouchSensor触摸传感器节点是浏览者与虚拟对象之间相接触型传感器节点。,TouchSensor触摸传感器节点创建了一个检测用户动作并将其转化后输出,以触发一个动画检测器。它用来测试用户触摸事件检测器。,该节点可认为任何成组节点子节点,并感知用户对该组节点动作。,虚拟现实技术课件之动态感知虚拟现实节点,第71页,TouchSensor,触摸传感器节点语法结构,Group,组节点,Background,背景节点,TimeSensor,时间传感器节点,各种插补检测器节点,ROUTE,路由,Inline,内联节点,TouchSensor,触摸传感器节点,虚拟现实技术课件之动态感知虚拟现实节点,第72页,TouchSensor,节点语法,(,触摸传感器节点,),TouchSensor,enable TRUE#exposedField SFBool,isActive#eventOut SFBool,isOver#eventOut SFBool,touchTime#eventOut SFVec3f,hitPoint_changed#eventOut SFVec3f,hitNormal_changed#eventOut SFVec3f,hitTexcood_changed#eventOut SFVec3f,虚拟现实技术课件之动态感知虚拟现实节点,第73页,域名和域值详解,enabled,域域值,定义了一个开关,即是否激活触摸传感检测器。当该域值为,TRUE,时,该检测器允许被用户激活,并产生输出;当该域值为,FALSE,时,用户无法激活该检测器。该域值默认值为,TRUE,。,事件说明,(1)isOver,为出事件,当用户鼠标位于被感应三维对象上方时,将引发,isOver,事件,且该事件为,TRUE,。反之,当用户鼠标不在被感应三维对象上方时,该事件值为,FALSE,。,(2)hitPoint_changed,为出事件,当用户在被感应几何图形,(,由,isOver,指定,),上单击鼠标时,发送该值。其值表示对象上点坐标。,虚拟现实技术课件之动态感知虚拟现实节点,第74页,(3)hitNormal_changed,为出事件,当用户在被感应几何图形,(,由,isOver,指定,),上单击鼠标时,发送该值。其值表示对象上点表面法向量。,(4)hitTexCoord_changed,为出事件,当用户在被感应几何图形,(,由,isOver,指定,),上单击鼠标时,发送该值。其值表示对象上点纹理坐标。纹理坐标功效是,VRML,中很主要一个功效。我们使用这一功效能够像,HTML,网页一样实现在一幅贴图上面划分多个区域,然后将每个区域设置各自交互。,(5)isActive,为出事件,当用户单击对象时,检测器被激活,该域值由,FALSE,变为,TRUE,;反之当检测器失效时,该域值将由,TRUE,变为,FALSE,。,(6)touchTime,为出事件,当,isOver,为,TRUE,,而,isActive,为,FALSE,时发送该事件,所发送值是系统当前时间。,虚拟现实技术课件之动态感知虚拟现实节点,第75页,实例,6-11,在蓝色立体空间背景下,首先将光标移到飞碟立体空间造型上,当出现触摸图标时,一直按住鼠标左键不放开,这时在屏幕上会看见一个在触摸节点触发下飞行飞碟,虚拟现实技术课件之动态感知虚拟现实节点,第76页,虚拟现实技术课件之动态感知虚拟现实节点,第77页,虚拟现实技术课件之动态感知虚拟现实节点,第78页,第一个路由是把(,Touch.isActive,)触摸传感器节点鼠标按下时间,”TRUE”,传送给(,Time.enabled,)时间传感器节点控制开关“,enabled”,,使,enabled,由“,FALSE,”变成“,TRUE”,第二个路由是把(,Touch.touchTime,)触摸传感器节点单击事件发生时间传送给(,Time.startTime,)时间传感器开始时间,第三个路由是把(,Time.fraction_changed,)时间传感器执行一段时间值传送给(,flyinter.set_fraction,)移动位置节点一个时间片。,第四个路由是把(,flyinter.value_changed,)移动位置节点一组值传送给目标节点(,flyinter.set_translation,)使飞碟沿着设定路径飞行。,虚拟现实技术课件之动态感知虚拟现实节点,第79页,6.3.2 PlaneSensor,平面检测器节点,PlaneSensor平面检测器节点是使虚拟对象在X-Y平面移动型传感器节点。,PlaneSensor 平面检测器节点能感应到观察者拖动行为,进而改变虚拟现实对象位置不过不能改变方位,而且只限定于X-Y平面。当观察者拖动虚拟造型时,光标会在虚拟造型上变为一个收装光标。,该节点创建了一个可将浏览者动作转换成适于操作造型输出检测器。,该节点可认为任何成组节点子节点,用以感知用户对该组节点动作,使造型按用户动作而平移。,虚拟现实技术课件之动态感知虚拟现实节点,第80页,PlaneSensor,平面检测器节点语法结构,Group,组节点,Background,背景节点,PlaneSensor,平面检测器节点,ROUTE,路由,Inline,内联节点,虚拟现实技术课件之动态感知虚拟现实节点,第81页,PlaneSensor,平面检测器节点语法,PlaneSensor,enable TRUE#exposedField SFBool,autoOffset TRUE#exposedField SFBool,offset 0.0 0.0 0.0#exposedField SFVec3f,maxPosition -1.0-1.0#exposedField SFVec2f,minPosition 1.0 1.0#exposedField SFVec2f,isActive#eventOut SFBool,translation_changed#eventOut SFVec3f,tracPoint_changed#eventOut SFVec3f,虚拟现实技术课件之动态感知虚拟现实节点,第82页,域名和域值详解,(1)enabled,域域值,是布尔量,定义了一个开关,即是否激活平面移动传感检测器,当该域值为,TRUE,时,该检测器允许被用户激活,并产生输出;当该域值为,FALSE,时,用户无法激活该检测器。其默认值为,TRUE,。,(2)autoOffset,域域值,是一个布尔量。假如为,TRI,正时,,(L,亿程序会依据用户实际拖拉鼠标情况,计算出每一次平移偏移量;假如为,F,虬,SE,时,表示每当用户进行一次新拖曳后,就会自动重新回到默认值。其默认值为,TR(,正。,(3)maxPosition,域域值,用来设置检测器最大位置值,其功效是限制移动对象范围只能在,XY,平面某一点下方和此点左半部。其默认值为,(1 1),。,虚拟现实技术课件之动态感知虚拟现实节点,第83页,(4)minPosition,域域值,用来设置检测器最小位置值,其功效是限制移动对象范围只能在,XY,平面某一点上方和此点右半部。其默认值为,(0 0),。,(5)offset,域域值,用于设置偏移量,即每一次输出位置时偏移量。当,autoOffset,域域值为,TRUE,时,人为设置偏移量将被忽略。其功效是每当用户进行一次新拖曳时,能够从默认位置被移动到最远距离。其默认值为,(0 0 0),。,虚拟现实技术课件之动态感知虚拟现实节点,第84页,事件说明,(1)isActive,为出事件,(eventOut),,若该事件为,TRUE,时,表示鼠标是被按下状态,若为,FALSE,时,则反之。该事件只会送出鼠标键是否被按下,但不是处于拖曳状态。,(2)trackPoint_changed,为出事件,表示进行拖曳后,用户鼠标在,XY,平面上确实切位置。当检测器被激活且用户单击鼠标时,该出事件发送该值。其值代表是虚拟平面上当前单击点。,(3)translation_changed,为出事件,表示在进行拖曳任意时刻,用户鼠标在,XY,平面上暂时位置。当检测器被激活且用户单击鼠标时,该出事件发送该值。其值代表虚拟平面上平移坐标值。,虚拟现实技术课件之动态感知虚拟现实节点,第85页,实例,6-12,使用平面检测器节点,能使帆船在,VRML,立体空间行驶;当用户单击帆船造型后,帆船会按指定路径左移到指定位置,虚拟现实技术课件之动态感知虚拟现实节点,第86页,vrml 6-12.wrl,虚拟现实技术课件之动态感知虚拟现实节点,第87页,虚拟现实技术课件之动态感知虚拟现实节点,第88页,6.3.2 Cyli
展开阅读全文