- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012最新基于VRML和JavaScript的数码摄影虚拟实验系统的设计与实现
2012最新基于VRML和JavaScript的数码摄影虚拟实验系统的设计与实现
1 研究思路与开发平台的选择
目前,基于网络对实验对象进行三维交互展示的有效处理方法是使用专业的设计软件,如采用AUTOCAD、3DS MAX等将实验对象的三维模型设计出来。这种方法建模过程直观形象,但生成的模型和动画不能与用户进行交互,需要将三维模型导出为相关虚拟现实设计软件所需要的格式文件,用虚拟现实设计软件进行三维展示的交互设计,最后将它发布到网站上[1]。
经过多年的发展,虚拟现实技术的实现也派生出多种不同的方法,现在较为流行的有VRML、Java 3D、CULT3D、X3D等多种实现方法。它们各自有不同的优缺点。其中,虚拟现实建模语言VRML(Virtual Reality Modeling Language)是一种描述大量对象的属性及相互关系的语言,具有平台无关性、三维交互性、多媒体集成、境界逼真等众多优越的特征,所以选择该软件作为开发平台。虽然VRML可以通过直接编程进行语义描述,建立实验对象的三维模型,但这种方法适合建立简单规则的模型。数码单反相机主要由机身和镜头两部分组成。机身上又包括取景窗口、液晶显示屏、曝光模式选择盘、控制拨轮以及各个操作按钮等,结构比较复杂,不宜直接用VRML语言进行语义描述。而是利用3DS MAX建立整个模型,并赋予材质、色彩、光照,导出VRML的格式文件(.*wrl文件)。因此,选择3DS MAX进行建模,再使用VRML软件进行交互设计并实现网上发布,建立逼真的交互式三维虚拟实验环境,可以让学生随时通过网络浏览三维场景,并通过人机交互进行仿真实验。
2 三维虚拟数码单反相机的设计与实现
实验对象的建模是虚拟实验开发过程中最重要的一步,模型的好坏直接影响运行的效果和场景的沉浸度。为了便于在VRML浏览器中设计三维数码单反相机的交互,可以真实地模拟实际操作进行镜头的旋转、曝光模式选择盘的转动、控制拨轮和按钮的操作等,在对数码相机进行建模时,将其各部分分别建模,后期组装。将数码单反相机的三维模型建好后,在3DS MAX中应用输出插件导出*wrl格式的文件。在运用3DS MAX模型导出VRML文件后要充分注意优化VRML程序。优化技术是三维虚拟建模过程中至关重要的一个环节,优化结果的好坏将直接影响三维数码相机的显示速度和交互效果[2]。
3 使用VRML语言结合JavaScript实现数码单反相机的虚拟实验
数码单反相机虚拟实验系统共包括四个实验,分别是:认识数码相机、数码相机的调节模式、数码相机的光圈调节、数码相机快门调节。
3.1 认识数码单反相机模块的设计与实现[3]
实验1是对数码单反相机的三维展示,主要分为:(1)自由旋转展示。在这种方式下,相机自动在浏览器中旋转,让学习者从不同的角度上观察相机的结构。(2)手动控制展示。在这种方式下,学习者可以自主转动相机,从不同角度细致地观察相机。
为了实现相机的自由旋转展示,可以运用时间传感器节点(TimeSensor)和方向插补器节点(OrientationInterpolator)。TimeSensor节点的作用是创建一个虚拟时钟,可以像时钟一样标记时间的流逝,设置开始动画、结束动画和控制动画的播放速度等属性,并向插补器节点输出时间事件,产生相应的动画效果。OrientationInterpolator可改变观察方向或者改变形状体的方向。插补器节点使用一组关键时刻和关键值来描述一个动画。关键时刻列表在插补器节点的key域中指定,关键值列表在插补器节点的keyvalue域中指定。浏览器在渲染时将根据这些关键时刻所对应的关键状态在场景中通过线性插值计算技术自动生成连续动画。实现自由旋转展示部分相应代码如下:
OrientationInterpolator{ //创建控制动画的插补器
key[0 0.5 1]//指定关键时刻列表
keyValue [//指定对应的旋转关键值列表
0 1 0 0,
0 1 0 3.14,
0 1 0 6.28
]
}
TimeSens{//创建控制动画的时间感应器
enabledTRUE
cycleInterval 30//指定每个变化周期的时间长短
}
ROUTE clock_camera.fraction_changedTO camera_auto_rotation.set_fraction
ROUTE camera_auto_rotation.value_changed TO camera_all.rotation
在ROUTE中,将
文档评论(0)