论文部分内容阅读
[摘要]虚拟现实技术是多功能的交互技术,而VRML是其中被广泛应用的建模语言,基于VRML设计了一种能完成虚拟实验的数码相机,为搭建虚拟的摄影实验平台作了初步的准备,有助于解决高校实验教学中遇到的实验器材紧张等问题。
[关键词]虚拟现实 交互 数码相机
中图分类号:TP2文献标识码:A文章编号:1671-7597(2008)0420026-02
一、引言
实验教学在教学活动中具有非常重要的位置,有助于深化学生对知识的理解和掌握,提高学生分析问题和解决问题的能力[1]。实验仪器价格昂贵,且更新换代比较快[2],而近年来高校办学规模的增大,给高校的实验教学带来了不少的困难[3]。
虚拟现实技术是近年来发展起来的利用计算机等硬件来模拟现实世界的前沿技术,具有沉浸性,交互性和构想性三大特征。利用虚拟现实技术搭建虚拟的实验平台可以解决高校在实验教学的困难。而实验平台的建设要以利用虚拟现实的各种技术实验各种实验器材为基础,本文以基于VRML(Virtual Reality Modeling Language)的数码相机为例来阐述如何设计实验器材。
二、VRML
VRML(Virtual Reality Modeling Language)是虚拟现实技术发展过程中脱颖而出,并被广泛应用的虚拟现实建模语言。作为分布式、多媒体集成、平台无关、实时可交互的三维造型和渲染工具,VRML所提供的技术能够把二维、三维、文本以及多媒体有效地集成为一个虚拟环境,从而使用户沉浸其中;并随着Internet以及三维Web技术的不断进步而发展,因此,我们能够利用VRML来设计虚拟实验器材,从而搭建虚拟实验平台,并应用于远程的实验教育。
(1)VRML通过建立场景实现对三维的立体的交互和浏览,场景的建立是由VRML的节点来实现的,主要有图形节点和动态节点。
虚拟现实中的模型既可以通过3DMAX软件设计导出,也可以通过VRMLPAD等软件编写图形节点得到。例如
Shape{
appearanceAppearance {
materialMaterial {}
}
geometry Cylinder{
radius 0.5
height 6.0}
}
(2)一般来说,VRML中交互可以通过三种方式[5]来实现,第一种是与时间传感器结合,使用插补器节点。VRML提供六种插补器节点,分别对应颜色、坐标、表面法线、方位、位置以及缩放的关键值的内插。其结构形式为
Key []
key Value []
set_fraction EventIn
value_changed EventOut
Key为时间关键值比率列表;key Value为事件关键值列表,取值随着所要改变的状态域值有关;set_fraction为动画完成的比率;value_changed与时间对应的事件值。
第二种是script节点。将传感器输出的数据传送到script节点,由url指定的Javascript脚本程序作进一步的处理,可实现较复杂的控制逻辑。第三种是EAI(外部编程接口),它是介于VRML世界与外部环境的编程接口。我们可以应用EAI通过外部程序来直接控制、操作、修改VRML场景,其中外部程序是与VRML嵌入在同一Web页面上的Java程序。
三、数码相机的设计
摄影实验中要使用到数码相机,因此设计虚拟的数码相机进行实验操作。基于VRML的数码相机的设计分为三个步骤:首先根据要完成的实验任务,确定所要设计的数码相机。这里实验任务是对数码相机的功能有初步了解,这里确定SONY DSC-F55E.它主要的功能有:数字变焦,加闪光灯,支持微距拍摄。可安装锂电池和存储卡。
(一)外观造型设计
利用3DMAX制作三维模型,导出,生成*wrl文件。其中部分模块可利用VRMLPAD直接编写,例如闪光灯中LED模块:
DEF flashLED Transform {
children Shape {
appearance Appearance {
material DEF _2 Material {
ambientIntensity 0
diffuseColor 0 0 0
specularColor 0.966667 1 0.966667
emissiveColor 1 0.4 0
shininess 1
transparency 0
}
}
geometry Box {
size 2.5 1.187 1
}
}
translation 38.7598 3.51 -26.8437
rotation 0 -0.707107 0.7071073.14119
scale 1 1 1
scaleOrientation -1 0 00.785398
}
(二)交互设计
本文涉及的交互主要采用了前面介绍的第一、二种方式。
1.电池的安装使用
电池的安装使用主要分成两个部分,一是电池盖的打开与闭合,主要通过电池盖的旋转来完成,二是电池的抽出与插入,图1是这部分的示意图。
当鼠标置于电池盖之上时,接触检测器TouchSensor节点的isOver事件,通过路由传递给Script节点的set_isOver事件,通过调用Script函数输出color_changed事件,color_changed事件通过路由传递给emissiveColor,即当鼠标置于电池盖之上时,电池盖被置成高亮的颜色,如图2所示。当鼠标点击电池盖时,接触检测器TouchSensor节点输出touchtime事件,通过路由③传递给时间传感器UnnamedAnimation0Time_48
的startTime事件,UnnamedAnimation0Time_48的输出事件fraction_chang
Ed通过路由④传递给batteryTranslationInterp_50的set_fraction事件,batteryTranslationInterp_50的输出事件value_changed通过路由⑦传递给电池battery_68的translation,即当鼠标点击电池盖时,电池先向外移动抽出,然后向内移动插入,如图3所示。。
2.拍照
拍照的设计涉及的内容很多,这里主要介绍闪光灯的设计
这里同样也是使用了接触检测器,鼠标放在闪光灯的按钮上,就会产生高亮,与前面的电池盖是类似的。按下flashbutton,接触检测器的touchTime事件通过路由把鼠标单击的时间传送给cameracontrolscript节点的set_flash事件。下面是set_flash事件的同名函数,它输出的是flashLED_changed,即通过对鼠标点击flashbutton可以改变闪光灯的LED灯的颜色,并发出闪光的效果,如图4所示。相关的源代码如下:
function set_flash (value, timestamp)
{
if (powerOn) {
if (flashOn) {
flashOn = false;
flashLEDcolor_changed = black;
}
else {
flashOn = true;
flashLEDcolor_changed = orange;
}
}
}
四、结束语
本文基于VRML,以灵活有效的方式设计了一种可以用于虚拟摄影实验的数码相机,在虚拟的三维场景下,浏览者可以和数码相机交互,从而掌握数码相机的使用,达到实验的目的。在此基础上,可以通过设计其他的虚拟实验器材,构建虚拟的实验平台,来解决高校在实验教学中遇到的一些问题。
参考文献:
[1]李莉,周蕾、李俊红.虚拟现实技术在实验教学中的应用[J]福建电脑,2007,1:17-18
[2]武俊鹏,孙建国、张国印.虚拟现实技术在计算机实验教学中的应用[J]计算机教育,2007,12:34-36
[3]张天宇.虚拟现实技术及其在高校教学中的应用[J]航空计算技术,2007,37(1):126-127,130。
[关键词]虚拟现实 交互 数码相机
中图分类号:TP2文献标识码:A文章编号:1671-7597(2008)0420026-02
一、引言
实验教学在教学活动中具有非常重要的位置,有助于深化学生对知识的理解和掌握,提高学生分析问题和解决问题的能力[1]。实验仪器价格昂贵,且更新换代比较快[2],而近年来高校办学规模的增大,给高校的实验教学带来了不少的困难[3]。
虚拟现实技术是近年来发展起来的利用计算机等硬件来模拟现实世界的前沿技术,具有沉浸性,交互性和构想性三大特征。利用虚拟现实技术搭建虚拟的实验平台可以解决高校在实验教学的困难。而实验平台的建设要以利用虚拟现实的各种技术实验各种实验器材为基础,本文以基于VRML(Virtual Reality Modeling Language)的数码相机为例来阐述如何设计实验器材。
二、VRML
VRML(Virtual Reality Modeling Language)是虚拟现实技术发展过程中脱颖而出,并被广泛应用的虚拟现实建模语言。作为分布式、多媒体集成、平台无关、实时可交互的三维造型和渲染工具,VRML所提供的技术能够把二维、三维、文本以及多媒体有效地集成为一个虚拟环境,从而使用户沉浸其中;并随着Internet以及三维Web技术的不断进步而发展,因此,我们能够利用VRML来设计虚拟实验器材,从而搭建虚拟实验平台,并应用于远程的实验教育。
(1)VRML通过建立场景实现对三维的立体的交互和浏览,场景的建立是由VRML的节点来实现的,主要有图形节点和动态节点。
虚拟现实中的模型既可以通过3DMAX软件设计导出,也可以通过VRMLPAD等软件编写图形节点得到。例如
Shape{
appearanceAppearance {
materialMaterial {}
}
geometry Cylinder{
radius 0.5
height 6.0}
}
(2)一般来说,VRML中交互可以通过三种方式[5]来实现,第一种是与时间传感器结合,使用插补器节点。VRML提供六种插补器节点,分别对应颜色、坐标、表面法线、方位、位置以及缩放的关键值的内插。其结构形式为
Key []
key Value []
set_fraction EventIn
value_changed EventOut
Key为时间关键值比率列表;key Value为事件关键值列表,取值随着所要改变的状态域值有关;set_fraction为动画完成的比率;value_changed与时间对应的事件值。
第二种是script节点。将传感器输出的数据传送到script节点,由url指定的Javascript脚本程序作进一步的处理,可实现较复杂的控制逻辑。第三种是EAI(外部编程接口),它是介于VRML世界与外部环境的编程接口。我们可以应用EAI通过外部程序来直接控制、操作、修改VRML场景,其中外部程序是与VRML嵌入在同一Web页面上的Java程序。
三、数码相机的设计
摄影实验中要使用到数码相机,因此设计虚拟的数码相机进行实验操作。基于VRML的数码相机的设计分为三个步骤:首先根据要完成的实验任务,确定所要设计的数码相机。这里实验任务是对数码相机的功能有初步了解,这里确定SONY DSC-F55E.它主要的功能有:数字变焦,加闪光灯,支持微距拍摄。可安装锂电池和存储卡。
(一)外观造型设计
利用3DMAX制作三维模型,导出,生成*wrl文件。其中部分模块可利用VRMLPAD直接编写,例如闪光灯中LED模块:
DEF flashLED Transform {
children Shape {
appearance Appearance {
material DEF _2 Material {
ambientIntensity 0
diffuseColor 0 0 0
specularColor 0.966667 1 0.966667
emissiveColor 1 0.4 0
shininess 1
transparency 0
}
}
geometry Box {
size 2.5 1.187 1
}
}
translation 38.7598 3.51 -26.8437
rotation 0 -0.707107 0.7071073.14119
scale 1 1 1
scaleOrientation -1 0 00.785398
}
(二)交互设计
本文涉及的交互主要采用了前面介绍的第一、二种方式。
1.电池的安装使用
电池的安装使用主要分成两个部分,一是电池盖的打开与闭合,主要通过电池盖的旋转来完成,二是电池的抽出与插入,图1是这部分的示意图。
当鼠标置于电池盖之上时,接触检测器TouchSensor节点的isOver事件,通过路由传递给Script节点的set_isOver事件,通过调用Script函数输出color_changed事件,color_changed事件通过路由传递给emissiveColor,即当鼠标置于电池盖之上时,电池盖被置成高亮的颜色,如图2所示。当鼠标点击电池盖时,接触检测器TouchSensor节点输出touchtime事件,通过路由③传递给时间传感器UnnamedAnimation0Time_48
的startTime事件,UnnamedAnimation0Time_48的输出事件fraction_chang
Ed通过路由④传递给batteryTranslationInterp_50的set_fraction事件,batteryTranslationInterp_50的输出事件value_changed通过路由⑦传递给电池battery_68的translation,即当鼠标点击电池盖时,电池先向外移动抽出,然后向内移动插入,如图3所示。。
2.拍照
拍照的设计涉及的内容很多,这里主要介绍闪光灯的设计
这里同样也是使用了接触检测器,鼠标放在闪光灯的按钮上,就会产生高亮,与前面的电池盖是类似的。按下flashbutton,接触检测器的touchTime事件通过路由把鼠标单击的时间传送给cameracontrolscript节点的set_flash事件。下面是set_flash事件的同名函数,它输出的是flashLED_changed,即通过对鼠标点击flashbutton可以改变闪光灯的LED灯的颜色,并发出闪光的效果,如图4所示。相关的源代码如下:
function set_flash (value, timestamp)
{
if (powerOn) {
if (flashOn) {
flashOn = false;
flashLEDcolor_changed = black;
}
else {
flashOn = true;
flashLEDcolor_changed = orange;
}
}
}
四、结束语
本文基于VRML,以灵活有效的方式设计了一种可以用于虚拟摄影实验的数码相机,在虚拟的三维场景下,浏览者可以和数码相机交互,从而掌握数码相机的使用,达到实验的目的。在此基础上,可以通过设计其他的虚拟实验器材,构建虚拟的实验平台,来解决高校在实验教学中遇到的一些问题。
参考文献:
[1]李莉,周蕾、李俊红.虚拟现实技术在实验教学中的应用[J]福建电脑,2007,1:17-18
[2]武俊鹏,孙建国、张国印.虚拟现实技术在计算机实验教学中的应用[J]计算机教育,2007,12:34-36
[3]张天宇.虚拟现实技术及其在高校教学中的应用[J]航空计算技术,2007,37(1):126-127,130。