基于X3D的虚拟植物建模与可视化研究
论文关键词:x3d(extensible 3d) 虚拟现实 虚拟植物 植物建模 可视化
论文摘要:本文在阐述 x3d虚拟现实技术的基础上,介绍并分析了基于x3d虚拟植物建模的关键技术和优势,进一步探讨了基于 x3d虚拟现实技术植物建模的原理与方法,最后,针对国内外应用现状,提出了应用中出现的问题,并为未来的研 究方向进行了展望。
1 x3d虚拟现实技术概述
虚拟现 实 (virtual reality)是20世 界 80年代初由vpl research公司创始人 jaron lanier提出的。已广泛应 用于科 学研 究与可 视化 、军事 模拟 、工程 应用、医学、商业、教育及娱乐等领域。x3d虚拟现实技术 是 目前虚 拟现实技 术 中最前 沿 的科技,2004年10月正式通过 iso/iec审议成为网络三维国际通用标准 iso/iec19775。x3d虚拟现实技术整合了 xml、javaseript、java、java3d和流技术等世界先进技术.具有更强大、更高效的三维计算 能力、渲染质量 和传输速度。它克服 了以往其它虚拟 现实语言存在兼容性及可扩展性差、对浏览器的依赖过强、编程能力弱等缺点,将其应用于农业信息领域,显示其巨大的发展潜力,前景十分广阔。
1.1 x3d虚拟现实技术的关键技术
(1)xml编码
x3d采用 xml编码 ,使其具 有通用性 、易于 页面集成 、与下一代 web融合等诸多优势.并引入了基于组件的结构.具有兼容性 、可扩展性 、轻量化 的内核等特点。WWW.11665.COMxml编码为创建与 xml兼容的 vrml代码 ,提供了一组 xml通 用 实体 和元 素 类 型声 明 。vrml2oox规范草案包含一个完整的 dtd,它定义了x3d的 xml标记 与这些标记 功能实现之 间的联系。而 dom为程序和脚本动态的访问和更新 xml文档的内容 、结构样式提供 了与平台 、语言无关的接口。
(2)构件思想
x3d体系结构的设计是以构件技术为指导的,这里构件是指功能相关 的一个或多个节点类型的一个集合 ,一个构件扩展 内核在某一 特定领域的功能 。x3d首 先将 vrml的关键特性封装为一个 小型可扩展的 内核 。然后通过特性 集扩 展内核 ,实现复杂 的或是应用程序定义的功能。构件思想带来的好处主要有:精巧的内核 、扩展能力 、减少 了对资源 的占用。
1.2 x3d虚拟现实技术的优势
x3d被定义为可交互操作、可扩 展 、跨平台的网络三维内容标准。x3d中添加了新的功能组件 ,推出java、xml通用平台下的开放原代码工具包,在 x3d中需要使用特殊 的功能时 ,可以调用由 java等编写的程序 ,由于java平 台无关性 ,这样可在不同的硬件和软件平台上实现浏览 ,拓宽了信息共享 范围。在组件优化的结构下 ,x3d扩展新的功能将更快捷。x3d的内容是模块化的和可重 复使用 的 ,根据可扩展 和模块化的结构 ,浏览器可以只需支持需要 的概貌 。x3d支持也提供了一种mpeg一4支持的方式。 x3d 是mpeg一43d渲染的基础。
2 基于x3d的植物建模与可视化
基于 x3d的虚拟植物建模与可视化 。是一种基 于x3d虚 拟现实技术 ,植物形态结构几何描述的三维植物结构 模拟方 法 。该 方法 利用 仪器采 集植 物空 问数据,在计算机上三维建模语言编程调用空间数据来实现植物 三维模拟与再现 ,模拟植物在 三维空问中的生长发育过程 。虚拟植物能够精 确地反 映现实植物 的形态结构 ,以可视化的方式反映植物 的形态结构规律。
2.1 虚拟植物建模与可视化开发的基本原理
要建立虚拟植物,首先要建立基本 的三维植物结构模型。一个完整的虚拟植物实体对象一般包含叶 、茎 、花 、根等几个主要结构部分 以及一些相关 的辅助设施 ,这些基本模型的制作采用现有较成熟的三维设计软件 x3d—edit。虚拟植物除 了能实现植物的三维可视 化外 ,其 另一个重要的功 能就是 通过 script编程 、api编程或其它技术能实现虚拟植物专题信息的展示和反馈。甚至实现一定 的分析功能 .协助农业相关部门进行植物信息收集与反馈。这对植物的研究是极为有利的,为他们提供了极大的方便。因而可以将虚拟植物定义为以下形式 :
虚拟植物=三维植物模型+专题信息展示功能+信息反馈功能+分析功能。实现步骤 如图 2。
2.2 基于x3d植物形态结构模型的建立与可视化
2.2.1 三维结构建模方法 利用 x3d创建虚拟植物,生成三维模型的方法大致如下 :
(1)利用 x3d节点直接编写程序 。对于植物都具有根 、茎 、叶三个主要部 分 ,叶子这种 复杂 的造型可以采用挤压节点一extrusion来实现。具体语句结构可参考有关文献。但仅仅根据 x3d语法构造准确的三维空间模型是很困难的,对于复杂模型的构造和修改就 比较不方便。
(2)除了使用节点直接编程之外,还要考虑使用其它辅助建模软件创建模型。由于一些结构和外形的复杂性,直接用 x3d建模比较困难,可以利用第 三方的造型软件来建模.然后通过相应的接口导出x3d文件,最后编辑 x3d 源程序 的相关部分来实现。通常的做法是,利用 autocad建立复杂模型后,如果希望有更好的效果,可以输入到 3dmax 中赋予材质、色彩建立光照效果、合成,最后转成 x3d文件 ,插入到虚拟环境 中。
2.2.2 交互编程方式在建模过程中.x3d 中常用的编程方式主要有以下二种 :
(1)用 x3d中的script节点编程。script节点可以帮助 x3d完成复杂的交互过程.它有以下4个作用:可感应环境的变化及用户的操作:从其它节点接收事件并进行一些处理;内部 的程序块可完成一些计算工作;通过发送事件使外界产生相应的变化。scrip节点可以像其它的x3d节点一样放置在场景中的任何地方,可以重命名,可以从它那里移走事件,也可以把事件传给它。这是最常用的编程方法,目前用的较多的描述性语言是 javascript和 vrmi_script。目前大多x3d浏览器都支持javascript编程.而支持vrmlseript编程的浏览器主要是 bs contact player。
(2)通过 x3d的外部编程接口api进行编程。这种编程方式允许虚拟场景与其它对象沟通,因而可以实现虚拟场景与其它对象的结合,达到令人满意的效果。