基于VRML的医学物理实验环境的搭建

2021-11-25 02:57陈昭喜
大学物理实验 2021年5期
关键词:建模物理实验

陈昭喜

(广州中医药大学 医学信息工程学院,广东 广州 510006)

目前,医学物理课程已逐步建立和完善在线开放课程和配套学习资源,为学生提供在线实验视频浏览,展现实验内容,重现实验流程一体化学习环境。只能让学生了解实验过程,无法呈现实验细节,学生动手能力并未得到有效提高。此外,在线实验过程固化,只能机械地重复既定过程,无法满足学生自主实验需求。

虚拟现实(Virtual Reality)使用计算资源运行并模拟三维环境,可以对系统中对象进行操作和交互,让体验者感受实验的真实性、完整性和细节性。

VRML(Virtual Reality Modeling Language,虚拟现实建模语言)是第二代Web交互技术[1],可以实行三维场景搭建及虚拟现实交互[2,3]。与传统Web站点相同,在数据量不大情况下实现三维虚拟场景模拟功能,无需额外安装客户端软件和虚拟终端,具有开发效率高,多组件,生态圈完善等优点。

VRML建模简洁方便,只需在浏览器中安装相应插件,就可以在客户端解释成三维场景,开展相应仿真实验。建立VRML医学物理实验环境,学生可以自主设计不同实验,包括从实验原理到公式推导,从仪器选择到实验流程设计等,图1为VRML实现技术架构图。

图1 VRML实现技术架构图

1 VRML虚拟实验室总体设计

1.1 需求分析与设计

虚拟实验能满足学习者自主学习需求,沉浸式体验实验步骤,熟悉仪器设备使用方法和参数调节,虚拟环境应满足以下条件:

(1)实验仪器的一致性。虚拟环境中的实验仪器必须与真实环境一致,包括参数调整,基本功能及实验流程等,让学习者体验到真实设备功能,自主控制实验过程。

(2)实验视角的多元化。虚拟实验环境需要保证多视角、全方位、立体化观察视角,能实现对环境的拖动、缩放和旋转等操作,调整参数配置,干预实验过程,让学生真实体验物理实验流程。

(3)实验场景与结果展现。提供实验流程与回放演示,计算自主实验中各种参数下实验结果与数据。

1.2 编译工具

VRML编译文件属于ASCⅡ码格式文本文件[4,5],在计算机中可以采用任意文本编译器进行编译操作,文件后缀名为*.wrl。当前最常用的VRML编译器为VrmlPad编辑器,能实现关键字提示、节点名称定义提示,支持交互预览会话、语法自动检测、特殊节点关键字提示等便捷功能[6]。

2 VRML虚拟实验室场景建模

2.1 素材收集

实验素材设计是VRML三维建模的前提。文章采用3DMAX建立实验仪器模型,将制作好的素材导入Cult3d和Flash环境中,导出格式分别为*.c3d和*.png。为保证模型视角的一致性及多元化,在设计素材时需对所有实验设备拍摄以实现模型贴图。

2.2 几何建模

几何建模是设计虚拟设备的形状和几何外观。根据实验对象模型复杂程度,可以分为规则形体建模和不规则形体建模两种。

(1)规则形体建模。Shape节点是组建VRML场景基本单元,有两个基本类,分别是appearance和geometry[7]。Geometry用于描述模型形体特征,有box、cone、cylinder、sphere和text基本形体。Appearance用于描述模型外表特征,并反映造型属性,如物体颜色属性,材质是否反光,材质材料等。在虚拟场景中,实验对象可能处于不同位置,可以通过设定Transform属性的translation、rotation和scale域,以达到实验对象平移、旋转和缩放效果。

(2)不规则形体建模。对于所有不规则形体建模,VRML采用“点线面”方法,即由点构造线,由线构造面。通过设定点指定三角面或多边形面,组合成不规则形体。

2.3 物理建模

虚拟实验的物理建模包含模型对象的灯光、材质、质量、重量、硬度属性等,这些对象共同描述和构建成实验仪器的三维模型。物理建模涉及计算机图形学、物理学和力学,如在重量建模上,需要考虑物体变形,软硬度等物理本质属性。物理建模设计是让VRML更为贴切反映真实实验,符合客观世界规律及真实场景逻辑。

2.4 行为建模

虚拟实验设计目的是让学习者通过沉浸式学习感受真实、完整实验流程。在虚拟实验中,学生能通过鼠标动手操作及调节相关参数,系统如何感知用户操作,并对这些操作做出响应,交互性实验涉及行为建模。虚拟现实是对客观世界地真实映射,客观事物在外观特征上具有外形及质感,同样具有行为或动作,并遵循客观规律。从行为角度理解,行为建模是在虚拟环境下所有实体必须遵循的行为规则。例如,物体在无支撑物时会出现自由落体运动,自由落体运动则属于行为建模范畴。

2.5 VRML性能与优化

VRML将描述的三维建模文件(*.wrl)以及其他媒体文件,如贴图、声音和视频文件一次性下载到客户端上,通过浏览器插件解释、执行并渲染成虚拟场景。为提高用户访问流畅性和沉浸感,需要考虑以下三个性能因素:

(1)应尽量减小文件大小,文件过大将影响客户端加载三维场景等待时常;

(2)减少不必要的场景描述复杂度以加快动画渲染速度;

(3)为提高性能,动作脚本控制需进行优化设计,如相同动作采用重复加载和调用方式,减少脚本代码。

为提高渲染效率,提升性能,一般可通过降低贴图采样率,缩减VRML文件及动画渲染效果,提高VRML传输速度。文章采用如下解决方式:

(1)采用模型优化器

建模复杂程度一般采用多边形(polygons)数量衡量[8,9]。3DMAX中模型复杂度与生成的VRML文件大小关系为:

1000polygons≈100k bytes。渲染效果越逼真,多边形数量越多,场景生成的VRML文件则越大,不能同时兼顾渲染效果和性能。在构建物理实验建模场景中,采用模型优化器插件(Optimize helper)合并相邻平面算法,将区间夹角小于某一指定阈值的平面合并,从而减少多边形数量,在不影响视角观感下能达到80%以上优化效果。

(2)贴图优化

为达到更为逼真渲染效果,通常采用多纹理替代多边形[10]。由于实验仪器设备贴图文件相对较大,影响传输性能。同时,视角变化时场景渲染必须考虑贴图计算,因此,贴图文件过大会严重影响VRML执行效率。文章对贴图采用MipMaps插件处理,根据视角变化将单一贴图以多种分辨率图像输出以替代纹理,有效减小贴图文件大小,提高传输和渲染性能[11]。

(3)采用LOD细节层次技术

在开发物理实验场景时,同一模型根据复杂度分别制作不同副本,浏览器根据用户视距自动匹配副本模型。如远景观看时只能观看大致轮廓,近景观看时才能浏览设备细节。采用LOD细节层次技术能有效加快客户端场景渲染性能。

3 虚拟实验项目设计与开发

以医学物理课程“光的单缝衍射实验”为例讲述虚拟实验项目与VRML人机交互设计。在虚拟实验中,学生通过改变光波波长参数,观察光束穿越狭缝或小孔时产生的偏转和条纹,从而掌握衍射现象与原理。

3.1 建模流程

首先,在实验场景建模之前明确建模需求,了解实验目标和内容,搜集相关实验设备和参数,熟悉公式推导和实验步骤,通过现场拍摄获得实验场景相关视频录像和贴图照片;其次,确定虚拟实验场景基本布局和基本元素,依照实验流程建立三维场景;最后,对实验导轨、仪器底座、示波器、狭缝挡板、成像屏幕等主体实验对象建模贴图,依据真实场景缩放、合并与组装实验对象,完成实验模型和场景渲染,图2为实验场景图。

图2 实验场景图

3.2 虚拟实验人机交互

为实现虚拟实验与学生的交互,在不同模型对象采用节点感知器采集用户输入状态,并反馈计算结果或动作响应。如实验中由TouchSensor感知器联合鼠标点击事件,完成鼠标调节光束灯源位置操作,部分VRML脚本如下:

DEF light TimeSensor {

cycleInterval 10

}

DEF way PositionInterpolator {

key [0.0,0.5,1.0]

keyValue [50 0.0 -100,

-12.5 -1.0 -100

-*23 -2.0 -100

] }

ROUTE yuanzhu1.touchTime TO lock.startTime

ROUTE clock.fraction_changed TO way.set_fraction

ROUTE way.value_changed TO yuanzhu.transl

ation

VRML本身无法实现复杂人机交互,如需输出实验结果和数据,需采用JavaScript 脚本实现对 VRML数据访问和控制。如产生的衍射波纹,相关代码如下:

DEF scriptrevolver Script {

url "vrmlscript:

function startrevolving(){

if(bochang b) {

revolve1[0]=0;

revolve1[1]=0;

revolve1[2]=1;

revolve1[3]=angle;

angle=angle+0.01;} ……

else

angle=c;}

function pd(value)”

directOutput FALSE

mustEvaluate FALSE

eventIn SFTime startrevolving

eventIn MFRotation pd

eventOut SFRotation revolve1

eventOut SFRotation revolve5

field SFFloat anglec

field SFFloat i 0

field SFBool pdangle FALSE

}

ROUTE timeticker.cycleTime TO scriptrevolver.

startrevolving

ROUTE scriptrevolver.revolve1 TO qiu1.rotation

ROUTE scriptrevolver.revolve5 TO bowen.rotation

4 结 论

文章参照医学物理真实实验项目和场景仪器模型标准建模,虚拟实验运行流畅,具有良好交互性和沉浸式体验感。

虽然VRML建模与优化技术成熟,但是医学物理实验项目复杂,设备仪器操作烦琐,实验项目与人机交互设计仍处于研究阶段。基于VRML医学物理虚拟环境在三维建模、人机交互、访问优化和实现方法上具有一定创新性和实用价值。

今后将进一步提升场景加载效率,建立完善细致的行为建模,增加医学物理复杂实验场景和项目任务,满足学生自主学习和在线实验需求。

猜你喜欢
建模物理实验
记一次有趣的实验
只因是物理
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
处处留心皆物理
做个怪怪长实验
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
三脚插头上的物理知识
NO与NO2相互转化实验的改进
实践十号上的19项实验