结合vrml实现asp虚拟现实网页
林 琪
asp是微软公司推出的一种用以取代cgi的技术,简单地讲,asp是位于服务器端的脚本运行环境。通过这种环境,用户可以创建和运行动态的交互式web服务器应用程序。asp还可利用ado数据访问模型实现数据库访问,从而使得开发基于web的应用系统成为可能。
这里要介绍的是在asp脚本文件中结合vrml技术,从而在虚拟现实环境下实现asp动态网页的方法。如果充分利用ado数据访问模型,就可以让网页访问者在模拟空间中随时访问数据库的内容,因此在建立电子商城、物业管理等网站时,这一技术是非常有用的。
■虚拟现实和vrml技术
目前流行的web文本语言有 html和sgml (standard generalized markup
language),它们都是使用tags
来描述资料结构中的不同元素成分。近来又产生了新的web语言vrml
( virtual reality modeling language),它是一种模型语言,
用来描述一个目标对象是如何呈现在 web 上的。 和html一样,
vrml也是可由浏览器解释的描述语言, 只不过vrml
不是描述成一个page 的格式, 而是描述成3d环境和目标的布局。
html和vrml的差别与建筑物的蓝本和它的模型的差别是同一个道理。
■vrml语言
vrml为虚拟环境的建立提供了规范,综合了现有三维软件的景象描述语言的优点。它有基本元素、顶点、线和面的定义,坐标变换有缩放、旋转和平移,并有优化的数据结构。如果说vrml是一种语言的话,显然vrml浏览器就是它的解释器。vrml浏览器的主要功能是读入vrml代码文件,并把它解释成一图形映象。
vrml语言具有的基本物体有:球体、锥体、柱体、立方体和文本等,这些基本物体为创建景像提供了方便。vrml的语法虽然并不复杂,但对于学习者而言,其烦琐是不可避免的,如果我们需要设计一幢大楼不仅需要设置各楼层的材质,还需要设置相应的位置,因此其代码量是相当可观的,幸好目前有许多创建vrml文件的模型的软件,并且有许多软件可以把其他三维格式的文件转换成vrml文件,如3ds、raw等。
■结合vrml实现asp动态网页的方法
下面我们以一个实验性的网页(见图1)为例,介绍结合vrml实现asp动态网页的方法。该网页的作用是帮助用户在浏览学院的虚拟环境时,可以随时调出学院各建筑物的相关信息。这一方法应用于电子商城时,则可以帮助用户灵活方便地查看商城中各种商品的信息。

图1
1.建立基本asp脚本
此网页设计为上下结构,其中上面的帧(命名为title)用来建立与各项网页功能的链接,下面的帧(命名为down)则利用ado方法通过动态查询后台数据库为用户显示相关的信息。名为down的帧再分为左右两帧,其中左帧名为con,作用结果显示于右帧中,右帧名为data,在con帧中链接asp文件,其中嵌入了一个vrml浏览组件,vrml文件设置为school.wrl,相应的asp脚本为:
〈embedwidth="460"height=300src=
"school.wrl"style="height:300px;width:460px"〉
2.建立vrml模型
我们可以采用3dmax2.5建立vrml模型,因为它已经支持vrml97标准。在进入3dmax界面后,按一般制作三维动画的方法对要创建的虚拟现实对象建模,赋予材质及贴图,指定动画。
建模工作完成后,为了建立与asp脚本的链接,可以点击creat/helpers选单,在下面的下拉列表框中选取vrml2.0,出现一个工具面板,面板上列出了12个辅助工具,其中比较常用的包括anchor和touchsensor等。anchor工具可以使场景中的对象与另一个url链接,类似于html文档的超级链接,这是最常用的功能。touchsensor工具可以启动一个动画。例如,我们可以设计一个开门的动画,并在场景中设置一个touchsensor工具,然后单击“picktiggerobject”,在场景模型中选择一个门把手,最后单击“pickactionobject”,在场景中选择一扇门,这样在生成的vrml模型中只要点击门把手,门就会自动打开。
设置了合适的vrml工具后,选择file/export选单,出现一个对话框,点击“存为类型”下拉选单框,选择“vrml2.0(.wrl)”文件类型,最后取一个相应的名称,这里取school.wrl,单击“保存”,会出现一个vrmlexport对话框,取其默认值,单击ok即可生成我们需要的wrl文件。
在建立vrml模型时利用了anchor工具,这样在用户选择相应建筑物时将链接到指定的asp文件,并根据参数的不同由asp文档负责实现数据库的查询和显示。因为设计思想很明确,根据实际经验,可以不设置anchor工具,而是直接修改wrl文件,这一修改工作在任何一个编辑环境中都可以完成,需要注意的是由于vrml模型的参数较多,一定要注意前后正确的匹配。
以lou1设置为例,设置anchor后,需要链接到http://146.128.10.3/yfroot/lou.asp,并为查询提供相应参数,由于查询的结果需要显示在右下方的帧中,因此还需要将目标区定为data,所修改的部分wrl文本为:
url"http://146.128.10.3/yfroot/lou.asp?no=''"
parameter["target=data"]
3.实现asp动态查询
这一部分相对简单,即由模型提供的不同参数实现数据库查询,设数据源为yfgl,建筑物信息存储在表hall中,利用asp提供的request函数接收no参数,并以此构造查询条件,关键的asp脚本代码如下:
〈%
set conn=server.createobject("adodb.connection")
conn.open"yfgl"
id=request("no")
sql="select from hall where hallno="&&id
set rs=server.createobject("adodb.recordset")
rs.opensql,conn
sql1="select …"
set rs1=server.createobject("adodb.recordset")
rs1.open sql1,conn
%〉
以上通过一个简单实例,提供了结合vrml实现asp动态网页的方法,针对具体的问题,还需要你用自己的智慧来设计虚拟环境和实现动态查询功能。