Unity软件在建模体系中的应用及难点分析

2017-03-11 14:25冯珊珊辽宁建筑职业学院
消费导刊 2017年9期
关键词:碰撞检测材质物体

冯珊珊 辽宁建筑职业学院

Unity软件在建模体系中的应用及难点分析

冯珊珊 辽宁建筑职业学院

本文简要论述的Unity 3D作为主流三维开发软件的特点及建模规范,以及其在使用过程中比较关键的技术问题,如建模、渲染、碰撞检测等难点问题,并为问题的解决提供有效的解决方案。

Unity软件 建模体系 应用 难点分析

Unity是一款全面整合了三维场景、动画效果和三维视频的专业游戏引擎,它是Unity Technologies公司开发的。Unity之所以能为众多软件开发人员使用、成为三维开发的主流软件,主要由于它具备以下三个突出优点:

1.操作简便、容易上手。可以从外部导入FBX格式模型文件,还自带第一人称视角,只要在Unity中编辑地面信息资料,基本的虚拟漫游操作就可以被实现。

2.开发语言多样。C语言和JAVASCRIP T语言都可以对Unity 3D进行开发,而且,Unity 3D程序的封装性能非常好,有丰富的插件资源可以选用,只需要相关的函数调用即可实现很多功能。

3.发布范围广,通用性良好。采用Unity 3D制作的系统可以发布在个人电脑、网页、安卓手机系统、游戏盒子以及Windows电话等当今主流平台上,只需要修改非常少量的代码,就可以实现平台的移植。 Unity 3D的主要特征为层级性综合开发环境,视觉化编辑手段,详尽的属性编辑器及动态资源预览;、项目中的资源可以被自动导入,还可以根据资源的改动进行自动更新;支持凹凸贴图(bump mapping)、反射贴图(re fl ecton mapping)、环境剔除(screen space)、阴影贴图(shadow map)技术,并支持渲染纹理(render to texture)和后处理(post processing)效果;支持使用shader lab语言进行shader编写,可分为顶点着色器和像素着色器;内置使物体具备重力、阻力、速度以及加速度的属性设置,对NIVDIA中的Physx physics engine支持,从而使虚拟的物体具备真实世界中物理反馈的表达。

一、Unity 3D的建模规范

Unity 3D中模型的加载会占用内存,场景内如果模型数量较多,则系统很可能存在卡顿现象,无法流畅运行。因此,建模的标准之一就是重视简模模型的使用,模型的面数尽量不要超过5000,将模型的面数尽可能的控制。

(一)建模单位的设定

建模一般以米为单位。为避免共、反面的出现可将面统一调到正视图位置,直接在max中进行渲染,如果有闪烁出现则说明存在共面,如果看不到这个面则说明是反面。将模型导出模型文件(Fbx文件),存到Unity 3D中,在非运行状态下移动(上下左右方向)可检查漏面。漏面是建模过程中出现的比较麻烦的一个问题,应在建模过程中及时检查和修改。

(二)命名规则

Unity 3D原则上不支持中文命名,原始模型、导出模型、贴图文件必须要使用英文名称。在max中,若采用中文名称,子模型不容易被Unity找到。那是因为模型是以子模型的名称出现在Unity 菜单中的,中文名能造成模型的丢失。只有材质的名称可以使用中文名。

(三)材质要求

Unity 3D对材质有特殊要求,仅标准材质和标准材质下的多维子材质(Multidime nsional sub - materials)被Unity支持。贴图方面,只有位图文件类型贴图、不带通道的JPG贴图以及带通道的TGA贴图被Unity 3D所支持。并且通道要求颜色反射、自发光以及不透明度。

(四)模型备份标准和提交方式

所有烘焙贴图、原始贴图、烘焙前后模型以及未塌陷的原始模型,即全部贴图和相应文件都应该保存在统一的文件夹下。保存时注意文件齐全,便于后续的修改和使用。

二、建模过程及难点分析

(一)模型优化

建模的过程中,一定要重视模型优化,具体包括尽量将看不见的或相交的面删除,尽量减少模型顶点数,尽量利用Unity中的Prefab物体预置属性。

因此模型建模上主要以效率和细节为重要指标,在确保高效率的基础上,将角色的细节尽量展现。在实际的项目制作中,通过反复实验,验证了人物在B/S架构中模型三角面确定在4500~5000左右最为合适。这个层级上的模型面数对显示效率和渲染效果来说都是最均衡的体现。

(二)交互操作

交互操作是除场景模型建立和优化之外的关键所在。整个场景中交互功能的开发都是由Unity 3D负责实现的,它将用户和虚拟场景联系在一起,协调整个平台的运行。建立好的模型要先导入材质后才能导入Unity,以免模型丢失纹理材质。

(三)碰撞检测

系统中用户的真实感受不仅仅只是外在感觉的设计,更重要的是可以真实展现物体的物理特性。Unity内置的Nvidia具有physx物理引擎,设计者可以利用该引擎高效率,且逼真的模拟刚体碰撞、摩擦效果及重力效果,从而让虚拟场景更加生动形象。

Unity 3D 内置了刚体碰撞检测,也就是在物体上直接添加各种碰撞检测。还可以对两个碰撞体中的其中之一进行刚体组件的添加,这样既可将物体轻松转换为刚体。

(四)渲染

系统设计过程中,为了场景更加真实,对不同模型、材质设置不同的阴影效果,从而控制模型表面不同的反射效果和折射效果,经过渲染后的场景效果更加逼真,更利于沉浸感的增强。

三、结束语

综上,本文简要阐述了Unity 3D作为开发平台在使用过程中比较关键的技术问题,如建模、渲染、碰撞检测等难点问题,并为问题的解决提供有效的解决方案,希望能在今后的开发过程中不断深入探索,发挥Unity软件更大的作用。

[1]金汉均.虚拟环境中物体碰撞检测算法研究[D](博士学位论文).华中科技大学.2006.

[2]孟飞.在Direct3D程序中运用碰撞检测[J].科技广场.2008,(1):136-137.

冯珊珊(1981-),女,辽宁建筑职业学院自动控制系教师,研究方向:应用电子及虚拟仿真系统开发。

猜你喜欢
碰撞检测材质物体
全新预测碰撞检测系统
深刻理解物体的平衡
基于BIM的铁路信号室外设备布置与碰撞检测方法
我们是怎样看到物体的
衣服材质大揭秘
Unity3D中碰撞检测问题的研究
BIM技术下的某办公楼项目管线碰撞检测
外套之材质对比战
针织衫之材质对比战
10KV配变绕组材质鉴别初探