当前位置主页 > 建筑设计 > 公共类 >

交互式虚拟千赢国际平台三维环境的设计简介

来源:未知  发布时间:2015-11-11 16:36

 千赢国际娱乐

 

  千赢国际手机官网,世界,通过一些操做界面,取此中的虚拟对象进行交互,再共同各类传感器和机械部件,给人们带来一种设身处地的感触感染。跟着计较机软硬件的成长以及图形处置能力的加强,虚拟现实手艺正在军事、医疗、教育、工业以及逛戏中的使用曾经越来越普遍。

  虚拟是虚拟现实手艺中一个极其主要的部门,虽然能够用现成的三维引擎来制做,可是因为绝大大都的三维引擎价钱不菲,而且其次要面向三维逛戏市场。所以,若是要处理的问题不是出格复杂,完全能够通过 本人编程并利用一些东西软件来完成。

  Microsoft Visual C++6.0(以下简称为 vC++6.0)是由微软公司出品的功能强大的可视化开辟平台之一,我们能够操纵它正在 Windows 操做系统上完成使用法式的建立、编码、测试、完美等各个阶段的工做。

  OpenGL(性图形库 Open Graphics Library)是一个3DAPI,它于硬件系统和操做系统,是跨平台的“图形硬件的软件接口”,具有高度的可移植性。它包罗了大量的画图和显示函数,用于快速建立及时 3D图形,次要用于图形专业 范畴 ,曾经 成 为工 业 尺度,目前的最新版本是OpenGL2.0。

  3ds max 7是由Autcdesk公司出品的用于制做3D模子和动画的软件,利用它能够制做出绘声绘色的人物、动物、动物和建建物等各类 3D模子和动画。我们利用 3ds max 7来制做一些动动物、建建物的 3D模子,并将其导出为 3ds文件,然后正在虚拟三维情况中挪用。

  Vue5 Infinite(以下简称为 vue5)由e-on软件公司出品,它也能够用来制做 3D模子和动画,其特长正在于对 3D 天然情况的模仿。正在虚拟三维情况中,天空的实正在感是影响视觉结果的主要要素之一,我们利用 Vue5的情况模仿功能制做出正在各类大气前提下的天空的图片,然后把这些图片做为虚拟三维情况中的“天空盒”的材质贴图,展示出逼实的大气情况结果。别的,我们还能够利用 Vue5强大的地形编纂功能制做出一些分歧特征的地形模子来充分虚拟三维场景。

  我们利用3ds max 7等东西软件来制做虚拟三维场景中的3D模子等元素。起首从天空起头,打开 3ds max 7,建立一个立方体 ,调整其边长到一个比力大的值(好比 2000米)我们把这个立方体称为天空盒。接着制做天空盒的材质贴图,也就是大气情况的图片。打开 Vue5,选择“载气”选项 ,然后从弹出的对话框当选择一种你需要的大气情况(当然你也能够利用其编纂功能建立本人想要的大气结果),然后点击文件菜单下的“导出天空”选项,将大气情况做为位图导出,再利用图片处置东西把整幅位图分化为取立方体六个面相对应的六幅位图;再次进入 3ds max 7,选中适才的立方体,利用材质编纂器把适才导出的天空图片付与立方体,进行一些调整,天空盒的模子就完成了。最初一步就是把天空盒的模子导出为“3dS类型的文件,以便正在法式中挪用。

  按照需要,还应正在场景中添加一些建建物之类的三维模子,当然了,这些模子也是我们利用 3ds max 7制做的,具体的制做方式这里不再赘述。可是要留意,制做的 3D模子要正在法式中及时绘制,因而,正在制做模子时,不克不及一味逃求精细,该当无意识地节制多边形的数量,以提高法式运转时的衬着速度。同样,把制做好的模子保留为“3ds”类型的文件。

  一般采用 2D图片的方式来显示动物,如许 ,即便场景中有一树林,也不会影响衬着的速度。制做动物图片时 ,起首应选择合适 的动物图片(最好是反面平视的照片)对图片做一些简单的处置 ,使其满脚以下几个要求:1)图片尺寸为 2的 N次方(32、64);2)图片的底色以及不需要显示的处所为纯黑色。以便正在法式中将这些处所处置成通明形态。最初,将图片保留为“bmp”格局,虚拟三维场景 中的动物就做好了。

  地形的建立不再采用事后建模的体例,而采用正在法式中及时绘制的方式,便于正在场景中漫逛时检测并计较出所处的地面高度。具体步调如下:起首,成立一个三维浮点型数组来保留地形的极点坐标值,三个分量别离为地形极点的x、Y、z坐标;然后,我们再建两个数组,别离用来保留极点的索引值(整型)和曲面贴图的平面坐标(浮点型);接着 ,利用一段轮回代码来随机生成地面的高度值,同时给三个数组赋值 ;最初,挪用 OpenGL中的函数 glEnableClientState()和glVertexPointev()来载入地形极点坐标数组,凋用 glEnableClientState()和glTexCoordPointer()函数来载人极点索引数组。如许,地形的初始化工做就完成了,能够把这个过程写成一个函数,名字叫做 lniin(),便于正在法式中挪用。

  OpenGL中所有的画图函数都必需正在 OpenGL的情况中运转,这个情况称为 OpenGL框架。OpenGL框架还必需运转正在 Windows使用法式框架 中。也就是说,起首要成立Windows使用法式框架,用它响应和处置各类动静和号令,然后再 成立 OpenGI 运转情况 框架,并 正在此中挪用各类OpenOL绘 图函数 。

  起首,正在 VC十 +6.0中新建 一个 Win32使用 法式(Win32 Application);然后,添加四个全局变量 htX2、hRC、hWnd和 hlnstance,别离用来保留设备描述表、着色描述表、窗口句柄和法式的实例句柄;接下来正在使用法式中包含 g1.h,glu.h、glaux.h三个头文件以及 opengl32.1ib、glu32.1ib、glaux.1ib三个静态链接库文件;最初,正在法式中插手 winMain()函数和 WndProc()函数(具体方式请参考 MSDN)。此中,WinMain()函数是从法式的入口,我们正在此中添加一些代码建立 Windows窗口,并正在 WinMain()函数 中利用PeekMessage()函数完成动静轮回(即法式的从轮回,被法式频频施行),它用来并向 WndProc()函数传送 肖息。WndProc()是一个窗口回调函数,用来处置各类窗口动静并响应外部事务。如许,一个根基的 Windows框架就建成了。

  步调如下:1)对 OpenGL运转情况进行初始化设置;2)挪用 OpenGL函数库中的函数完成画图和显示工做并刷新屏幕,能够把完成这些工做的代码编写成一个函数,定名为DrawScene(),以便正在法式中挪用;3)正在法式退出之前各类资本,断开 OpenGL取Windows窗121的毗连。

  winMain()函数是法式的入口,我们用它建立一个窗口并设置其大小和样式。WndProc()回调函数会对“建立窗口”这个动静做出响应 ,顿时挪用 OpenGL框架中的 SetPixelFomat()函数检测机械对 OpenGL的支撑环境,并安拆OpenGL显示接口。当窗 口建立成功后,WndProc()函数对窗口尺寸变化动静做出响应,挪用 OpenGL框架中的 gluPerspective()等函数对 OpenGL视 12I进行变换调整。Windows窗口生成后,就进入法式的从轮回,正在此中挪用 DrawScene()函数绘制场景,同时和分派各类动静。法式退出时,挪用 OpenGL中的 wglDeleteContext()函数来堵截 OpenGL取 Windows窗口的毗连。