Unity3D可用性评估报告
作者:Li jun
日期:2010-1-13
概要
对Unity 2.6.1 for Windows 30天试用版(可从http://unity3d.com/unity/download/网址上下载)进行可用性评估:本文的目的是确定U3D的应用范围。
正文
Unity 3D引擎介绍见“参考资料[4]”。Unity Pro(开发工具)网上报价1499美元,参考“参考资料[3]”。
文档齐全程度
含文本Tutorial和视频Tutorial。安装Unity 2.6.1 for Windows版本时自带。使初级用户上手比较容易。
入门可以参考下面的网址:
file://localhost/D:/Unity/Editor/Data/Documentation/Documentation/Manual/Unity%20Basics.html
官方Reference文档,比较齐全。在世界编辑器使用当中,随时可以得到WEB页面形式的帮助提示。
区活跃程度
官方社区,每天都有更新。这是网址。
http://forum.unity3d.com/
用户角度评价功能可用性
第一部份:渲染效果评估
比较对象《古墓丽影:黑暗天使》、《Crysis: War head》、《使命召唤:现代战争》、《波斯王子3:王者无双》、《刺客信条》、《3D Mark2001》、《3D Mark2005》。几款软件均效果全开。这些软件的截图可从网上查阅。
Unity3D引擎的Island Demo所有设置缺省,运行的硬件平台为Intel 945G集成显卡。
Island Demo渲染效果评估表
评估项目 | 评语 |
曲面Tessellation技术 | 无。该技术的作用是减少物体轮廓的粗糙感 |
凹凸纹理贴图 | 物体表面无明显凹凸变化 |
多边形曲面光照效果 | 无 |
物体表面半透明效果 | 无 |
阴影效果 | 没有测试 |
环境光效果 | 光晕’效果太明显,在地面上没有相应的投影 |
水影效果 | 倒影逼真 |
水面效果 | 很假,明显是多层纹理贴图的结果 |
水中效果 | 只是简单得做了后期模糊处理。效果不真实。 |
海岸线自然程度 | 线段明显 |
运动景深效果 | 无 |
静态景深效果 | 无 |
体积云效果 | 无 |
the "Islands" scene of the Tropical Paradise project缺省渲染效果,我认为总体上只相当于DirectX7商业游戏的渲染水平。但是Unity3D集成Shader模块,要达到DX8或以上的效果应该是没有问题的。
备注:直觉方式评判渲染效果的依据
DirectX8渲染的特征是可以让物体表面呈现金属质感。在环境光下一根木头同一块金属的表面(光的漫反射)可以看出明显的不同。
DirectX9的渲染特征是可以让物体表面呈现明显的立体感,比如:Crysis游戏中的路面,玩家可以明显的看到,用细沙铺成的还是用头块铺成的,他们的立体感有很强的不同。
DirectX10的渲染特征是可以让物体表面真实感接近照片级。
Direct11的渲染特征是可以对物体表面以“光线跟踪”的方式来逐点计算每个点,达到以假乱真的效果(当然,这是我猜的,哈哈!)
当然以上标准不是绝对的,3DMark2001第一个测试场景采用DirectX7 API就达到了飞机模型表达真实金属质感的效果。但是在实际游戏当中,在号称完全支持DirectX8的游戏中这种效果才比较常见。同样,理论上DirectX7和8的API已经支持凹凸纹理贴图,但是从视觉上这种立体感还不是很真实。在号称完全支持DirectX9的游戏上,这种纹理的立体感才比较多的在游戏场景中出现。
注意945G集成显卡的渲染能力是很有限的,这也导致了渲染效果的比较不是很科学。
第二部份:冲突检测效果测试
物体之间的碰撞效果没有测试。Unity3D软件目前使用Ageia PhysX™ 物理引擎,它是目前最顶级的渲染引擎之一。所以这本身就是品质的保证。时间有限,对该功能目前不做测试。
第三部份:场景编辑器使用感觉
在Win XP下选择[开始]->[程序]->[Unity]->[Unity]启动Unity程序。
第一步:通过在项目中加入一个地形两个物体和一个摄像机来体验世界编辑器的易用性。
第二步:加入物体交互功能,使之能在第一人称视角上行走
第三步:模型导入功能
3D模型导入功能相对于DX Studio、D3DX的X文件,功能要强很多。参考上次会议3D模型导入演示。
第四步:定制GUI功能
半透明窗口,图片按钮!演示完成,很方便。
第五步:输入设备,事件响应及Camera控制
不做进一步测试了,参考下列文档
《在3dmax中导入的动画摄像机巡游与主摄像机之间的切换》
http://blog.csdn.net/ouczoe/archive/2010/01/11/5174240.aspx
《旋转camera到特定对象》
http://blog.csdn.net/ouczoe/archive/2010/01/11/5174647.aspx
第六步:网络部份功能
参考下面文档
U3D自带Reference Manual中的《Network Reference Guide》
Methods of Network Communication
Remote Procedure Calls
State Synchronization
第七步:连接数据库功能参考下面文档
Unity3D 连接MySql数据库
《http://blog.csdn.net/nette/archive/2009/07/30/4394849.aspx》
第八步:根据测试,可以支持中文显示和输入
第四部份:功能可扩充性
查看了U3D的Script Reference发现没有关于如何调用COM组件与WIN32API的资料,访问My SQL据说也是采用URL方式。所以我现在假定,[1]U3D的Script不直接支持调用COM组件。[2]U3D的Script不支持直接调用操作系统级API。
官网上有一个“Texture Plugin”的例子,是举例使用C++做U3D的Plugin的例子,U3D是通过调用C#,由C#去装载C写的DLL库,来实现动态纹理贴图。但是由于没有更多的有关这方面的资料在网上。所以,我这里只能假定U3D不能和C++写的程序很好的集成。
关于功能扩展方面的资料可以查阅下面的URL
《Unity3D与VS2008结合,加快Unity3D C#开发!》
http://blog.csdn.net/nette/archive/2009/06/15/4271070.aspx
第五部份:U3D目前应用情况
由百度、谷歌搜索引擎的搜索结果来看,做小型游戏、房产演示的作品比较多。但是,关于力学仿真模拟的产品很少。目前只看到过一款,模型很漂亮但交互功能没有,只是简单的操作流程演示。
我推测,U3D不适合物理学仿真领域。它目前只适合做产品演示,操作流程演示等方面的工作。
总结
从普通用户的角度来说,3D Unity功能齐全,容易使用,3D模型导入比较容易,做3D项目比较容易。
从开发人员的角度来说,使用3D Unity已有的功能,是很方便,但是一旦涉及到某些地方要定制化就很难做。由于它不能直接调用操作系统底层功能,因此,定制化模块的性能会比较差。
3Dunity适合做房产演示、产品演示、小型网络游戏。但是不适合做大型网络游戏,和用户定制化要求比较高的项目。
外部评语
[1]数据库: 可以连接 My SQL, 利用URL访问。但是传输信息的代价大。
http://blog.csdn.net/ouczoe/archive/2010/01/18/5208086.aspx
外部参考资料
[1]Unity3D引擎官网
[2]Unity3D引擎中文官网
[3]Unity3D使用成本(USD)参考
https://store.unity3d.com/shop/
[4]Unity3D引擎介绍
http://www.unity3d8.com/content/unity3d简介