摘要:该文针对目前房地产楼盘展销的现状,提出VR与JAVA相结合实现在WEB下对楼盘的相关操作。在该系统中主要介绍应用UNITY3D来搭建模型,建模中摄像机的运动问题,JAVA三维接口对模型的加载和和操纵以及如何快速的将三维模型显示在网页上,达到场景自动展示和和浏览,并可以在网上购房的功能。
关键词:VR;JAVA;UNITY3D;三维模型;网上购房
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)04-0891-02
1 房产行业发展趋势
目前房地产行业竞争日益激烈,目前大多数楼盘展销的手段都是平面图、沙盘、样板房等,这些手段已经远远无法满足消费者的需要,造价高而且不支持异地销售。虚拟现实是集影视广告、动画、多媒体、网络科技于一身的21世纪最新型的房地产营销方式,这种方式可以使用户足不出户就可以选择自己心仪的房屋,能够从全方位浏览小区的景致,是当今房地产行业楼盘档次、规模和实力的象征,因此敏锐把握市场动向,果断启用最新的三维虚拟互动展示系统并迅速转化为生产力,方可以领先一步,击溃竞争对手。采用虚拟现实技术进行开发的展销系统所带来的体验性、便捷性、互动性,使房地产经销商不受展示环境的局限,方便应用于各类活动推广、销售现场、展会、方案评审、网络传播等多种媒介。它整合了数字沙盘、效果图和样板间的功能,采用先进的虚拟三维现实技术把楼盘真实的模拟出来,看房者通过简单的操作便可在场景中身临其境般的进行全方位的交互漫游,在虚拟现实的建筑和房间中体验未来的生活。在web网页上使用三维手段来展销房屋,将使得用户能更早一步看到未来的房屋模型,增强用户沉浸感,给房地产商提供了一种新的销售方式,可以大大的减少企业的销售成本,提高企业竞争力,提升公司品牌形象。
2 Unity3D介绍
Unity是一个用于创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的综合型创作工具。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac,Wii或iPhone平台。也可以利用Unity web player插件发布网页游戏,支持Mac 和Windows的网页浏览。它的网页播放器也被Mac widgets所支持。目前大多数情况下多是用Unity3D来制作游戏,Unity提供了具有柔和阴影与烘焙lightmaps的高度完善的光影渲染系统,所以在漫游上的效果比较适合楼盘的展销,而且其跨平台性能利于我们在不同的系统中进行展示。
3 Unity3D搭建模型
1)基本设置
首先需要在Unity3D中进行地形绘制,在绘制之前我们需要理解这个工具中的一些参数,Create Terrain是创建一个地形,Import Height Map Row是导入地形高度,Set Resolution是设置分辨率,这里是设置地形的长、宽、高等属性,Create Light Map是创建光强度。第一步创建一个地形用于构建楼盘的边缘结构,为了方便进行凹处绘制,我们将地形的高度整体抬高30个高度。选择相应的笔刷,设定所需的笔刷的大小以及笔刷的强度,就可以对地形以及其上的基础设施就行绘制了,最后点击Edit Texture来添加纹理,在此对楼盘的搭建结束。
在本系统中,需要动态地实现例如墙纸、地板等材质的更换以获得不同的展示效果。首先需要场景中创建一个简易的样品房,样品房里面有一个地面和两面相互垂直的墙壁。当选中样品房中的墙壁或地面,控制台就会输出选中对象的名称。场景中还提供四个按钮,包括“墙纸1”、"墙纸2"、“地板1”还有“地板2”,当我们鼠标选中地板时,可以点击“地板1”或“地板2”动态地更换地板材质,同理当我们鼠标选中墙壁时我们可以点击“墙纸1”、"墙纸2"动态地分别更换两面墙壁的墙纸。具体制作过程简单描述如下:第一步先在场景中创建上面描述的样品房,其中包括两面墙壁和一个地板,之后还需要把摄像机调整到合适的位置并加入合理的方向光源。接着,需要把相关的图片素材导入工程,把所有墙纸和地板的素材放到一个命名为“image”的文件夹里面。然后创建对应的四个材质,其命名分别为floor01、floor02、wall01和wall02。最后,我们需要创建一个命名为Material的文件夹并在里面创建一个js脚本。在场景中,先为样品房中的对象赋予一个默认的材质使场景初始时不会显得太单调。在脚本中需要先声明若干变量,其中包括一个GameObject类型的当前对象,还有GameObject类型的_wall01、_wall02和_floor分别对应样品房中的两面墙壁和地板。先把脚本文件拖到场景的摄像机上,并设置具体属性。脚本属性中有以下几项:_wall01Material、_wall02Material、_floor01Material和_floor02Material,需要为这些属性指定相应的材质。场景就基本搭建好,最后需要做的就是编写具体的脚本。
2)Java三维接口对模型的加载和操作
在Unity内部的脚本,是通过附加自定义脚本对象到物体组成的。在脚本对象内部,不同的函数被特定的事件调用,下面是最常用的几个函数:
Update:
这个函数在渲染一帧之前被调用。这里是行为代码被执行的地方。
Fixed Update:
这个函数在每个物理时间步被调用一次。每次被调用的频率可以通过设置来改变,它的处理基于物理行为的地方。
3)任务角色移动:
Function Update(){Transform.Translate(0,0,2*Time.delta-Time);}当乘以Time.delta-Time时,实际表达的是:想以5米/秒移动这个物体,而不是5米/帧,这将时观察者独立于帧运行,同时运动的单位也好理解。
4)访问组件:
组件是被用来附加到实体对象上,如果把组件附加在上面,就可以使实体被渲染,附加Camera,就可以使实体作为摄像机。
Var go = Game.Find(“floor”);
Go.transform.Translate(0,1,0);
Var player = Game.FindWithTag(“player”);
Player.GetComponent(OtherScript).DoSomething(“Hello”);
4 总结
JAVA语言强大的网络功能,Unity3D强大的图形图像处理能力,使得VR与JAVA很好的结合起来,从用户方面提高了其体验度,在任何区域无时间和空间的限制;从开发商方面节省了开发成本。在如今是一个浪潮,推动了虚拟现实在真实环境下的应用。基于Unity3D的虚拟楼盘展示系统,支持动画展示与主观沉浸式展示,整体到局部的细节展示,是一个不可多得的楼盘类展示案例,实际项目可根据客户需要扩充内容。
参考文献:
[1] 杨必胜数字城市模型的三维建模与可视化技术研究[D].武汉:武汉大学,2002.
[2] 杨志强,尚建嗄大规模城市三维景观实时浏览解决方案研究及实现[J].计算机应用研究,2003(10).
[3] 邹静.迎接互联网的明天—玩转3Dweb[M].北京:电子工业出版社,2011.
[4] 刘畅.虚拟现实技术的关键技术研究[J].数学技术与应用,2011(1).
[5] 宣雨松.Unity 3D游戏开发[M].北京:人民邮电出版社,2012.