虚拟现实技术课件第四章7.ppt
《虚拟现实技术课件第四章7.ppt》由会员分享,可在线阅读,更多相关《虚拟现实技术课件第四章7.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、虚拟现实技术课件第四章虚拟现实技术课件第四章712021/2/23Script节点语法节点语法Script url#exposedField MFString mustEvaluat FALSE#field SFBool directOutput FALSE#field SFBool#And any number of 以下域或事件由用户定义任意以下域或事件由用户定义任意多个多个 field fieldType fieldName initialValue eventIn eventInType eventInName eventOut eventOutType eventOutName域或事
2、件域或事件域或事件的类型名域或事件的类型名 域或事件的名域或事件的名域的初始值域的初始值域名和域值详解域名和域值详解url域的域值域的域值 定义了一个定义了一个URL列表。列表。该列表中的该列表中的URL值所指定的程序脚本可以是由任何值所指定的程序脚本可以是由任何VRML阅读器支持的语言写成的,通常是阅读器支持的语言写成的,通常是VRML阅读阅读器支持的器支持的Java语言和语言和JavaScript语言语言而且而且JavaScript的函数和指令可以直接包含在的函数和指令可以直接包含在url域中。域中。该域默认值是一个该域默认值是一个URL空列表。空列表。mustEvaluate域的域值域的
3、域值 是一个布尔量。是一个布尔量。它定义了程序脚本是如何进展求值的。它定义了程序脚本是如何进展求值的。当该域值为当该域值为TRUE时,每当由节点的时,每当由节点的eventIn事件接收到一个新事件接收到一个新值时,阅读器就立即对该程序脚本进展计算;值时,阅读器就立即对该程序脚本进展计算;当该域值为当该域值为FALSE时,那么阅读器在此脚本不影响环境中任何时,那么阅读器在此脚本不影响环境中任何可视部分的情况下,推延对脚本的计算,等到比较适宜的时可视部分的情况下,推延对脚本的计算,等到比较适宜的时间再来处理。间再来处理。这样就会出现事件到节点的传送和计算节点处理该事件动作这样就会出现事件到节点的传
4、送和计算节点处理该事件动作的延迟。此时假如多个事件被传送,待处理的事件列表就会的延迟。此时假如多个事件被传送,待处理的事件列表就会变长。变长。为了尽量使其性能到达最优,为了尽量使其性能到达最优,mustEvaluate域值应设定为域值应设定为FALSE,因为阅读器的性能取决于一个事件被发出后必须进展,因为阅读器的性能取决于一个事件被发出后必须进展计算的程序脚本数目,假如将其域值设为计算的程序脚本数目,假如将其域值设为TRUE,就会增加阅,就会增加阅读器的工作量,从而降低画面的刷新速度和交互性。该域默读器的工作量,从而降低画面的刷新速度和交互性。该域默认值为认值为FALSE。directOutp
5、ut域的域值域的域值 用来说明程序脚本的输出是否受到限制。用来说明程序脚本的输出是否受到限制。假设为假设为TRUE时,程序脚本可以直接对它能访问的任何节点的时,程序脚本可以直接对它能访问的任何节点的可见域进展写操作或对任何节点的可见域进展写操作或对任何节点的eventIn事件进展发送,而事件进展发送,而且还可以在且还可以在VRML场景中增加或删除一条通路;场景中增加或删除一条通路;假设为假设为FALSE时,程序脚本不能直接发送事件,但可以访问。时,程序脚本不能直接发送事件,但可以访问。通常情况下,应将通常情况下,应将directOutput域值设为域值设为FALSE,其默认值为,其默认值为FA
6、LSE。Script节点可定义多个域和事件节点可定义多个域和事件(入事件和出事件入事件和出事件)。接口域、。接口域、接口接口eventIn和接口和接口eventOut都可以任意取名字,但必须遵循都可以任意取名字,但必须遵循DEF的命名约定。按照的命名约定。按照VRML的约定,要区分大小写,名字必的约定,要区分大小写,名字必须以小写字母开头,而且名字的每个子序列单词都必须大写,须以小写字母开头,而且名字的每个子序列单词都必须大写,允许在名字中使用下划线和阿拉伯数字。允许在名字中使用下划线和阿拉伯数字。7.1.2 Script脚本节点实例脚本节点实例实例实例7-1 使用使用Script节点创立动画
7、效果,将飞船发射节点创立动画效果,将飞船发射送太空;当用户单击送太空;当用户单击VRML立体空间的飞船造型时,立体空间的飞船造型时,飞船将分开地球飞往太空飞船将分开地球飞往太空.关于VrmlScript在在VRML中使用中使用VrmlScript的根本构造为的根本构造为:ScripteventIn SFBool inputeventOut SFBool outputurlvrmlscript:function input(value)output=value;eventIn SFFloat input中的中的input代表的事件输入代表的事件输入,也就是触发程也就是触发程序执行的源动力序执行的
8、源动力,SFFloat代表的是这个源动力的数值类型代表的是这个源动力的数值类型,常见的常见的input可以是时可以是时间间,布尔值等布尔值等,而相应的数值类型是而相应的数值类型是SFTime,SFBool等等.同理同理,eventOut SFBool output指的是事件输出指的是事件输出,也就是你这个也就是你这个程序所要到达的目的程序所要到达的目的.url“vrmlscript:function input(value)output=value;其中其中vrmlscript代表的是你这个程序所使用的语言是代表的是你这个程序所使用的语言是vrmlscript,当然当然,你也可以改成其他的你也
9、可以改成其他的,如如javascript等等function input(value)是这个程序的响应函数是这个程序的响应函数.output=value;是这个函数的语句是这个函数的语句,要注意要注意,在在VrmlScript中要调用输入值时必需要通过中要调用输入值时必需要通过一个与事件输入同名的函数来实现一个与事件输入同名的函数来实现,不允许直接调用不允许直接调用 使用使用Script实如今射击场射击的动画效果;当用户实如今射击场射击的动画效果;当用户单击立体空间的手枪造型时,手枪将发射子弹击中单击立体空间的手枪造型时,手枪将发射子弹击中目的。目的。7.2 创立用户自己的新节点创立用户自己的
10、新节点之前,我们常用之前,我们常用VRML提供的几何造型节点来设计提供的几何造型节点来设计立体空间造型立体空间造型主要利用模型节点主要利用模型节点Shape、组节点、组节点Group及群节点等及群节点等创立简单三维立体模型。创立简单三维立体模型。此外还可以使用此外还可以使用DEF来定义自己想要重复使用的节来定义自己想要重复使用的节点,然后用点,然后用USE来使用该节点。来使用该节点。VRML是一个丰富多彩的世界,假如想创立更加逼是一个丰富多彩的世界,假如想创立更加逼真、生动的场景和造型,需要更加复杂的设计。因真、生动的场景和造型,需要更加复杂的设计。因此需要用户根据实际工程的需求,来设计和开发
11、用此需要用户根据实际工程的需求,来设计和开发用户自己需要的新节点、节点类型及接口事件等,以户自己需要的新节点、节点类型及接口事件等,以满足软件开发满足软件开发 的需求。的需求。7.2.1 PROT0创立用户新节点创立用户新节点PROTO创立用户新节点定义了新节点的名字、域、创立用户新节点定义了新节点的名字、域、域值、事件及节点体。域值、事件及节点体。一旦定义了用户新节点,就可以像使用一旦定义了用户新节点,就可以像使用VRML标准标准节点一样来使用它。节点一样来使用它。用户新节点用户新节点PROTO通常写在通常写在VRML文件的前面。文件的前面。PROTO创立用户新节点语法构造创立用户新节点语法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟现实 技术 课件 第四
限制150内