3D渲染采用BS架构还是桌面应用程序方式
作者:kagula
日期:2010-01-06
概要
在项目需求确定的前提下,我没想到软件开发采用BS架构还是桌面应用程序方式,会引起那么大的争论和我心里的混乱,感觉有必要写一篇短文来简要阐明为什么采用桌面应用程序方式来实现模拟法庭项目。
本文的结构:
第一部份,3D物体在图形显示系统的表达
第二部份,采用BS加架构还是桌面应用程序方式,两种方法的优劣比较
第三部份,常见问题回答
正文
第一部份:3D物体在图形显示系统的表达
要在计算机图形系统中显示一个3D物体,所需要的最基本信息是:
[1]3D物体所处的空间描述,比如灯光、坐标系。
[2]3D物体在空间中的坐标,采用术语“顶点”。多个顶点组成一个几何图形,比如
圆、三角形。
[3]3D物体的皮肤,采用术语“纹理”。它回答的是在几何图形里面填充什么。
显然,要渲染一个3D物体,所需要的数据量同具体采用哪种3D引擎是没有必然关系的。
第二部份,采用BS架构还是桌面应用方式,两种方法的优劣比较
程序性能上的比较
由BS架构渲染3D图形,必须通过浏览器才能存取本地计算机的硬件资源,而浏览器只能很有限的利用图形加速卡的加速功能,在程序的运行速度和响应上是没办法同桌面级应用程序相比的。
由BS架构渲染3D图形,所需要的数据通过网络传输,必须添加冗余数据用来保证驻留在浏览器中的程序能够得到正确数据。同样的渲染算法,BS架构所需要的数据量要比桌面应用程序方式要多。
所以采用桌面应用程序方式渲染3D物体,所需要的内存和磁盘空间比较低,对计算机运行速度的要求相对也不高。
用户体验上的比较
| BS架构 | 桌面应用程序方式 |
安装文件 | 不需要,或只装IE插件 | 需要安装文件 |
程序占用空间 | 较大 | 小,不需要额外代码保证接收数据的准确和完整 |
运行速度 | 较慢 | 快。可以发挥本地计算机硬件的全部效能 |
界面响应 | 较慢,且可能不稳定 | 快,稳定。没有3D数据网络传输延迟问题 |
总分 | 1 | 3 |
第三部份,常见问题解答
Q1:WEB3D是将来的发展趋势所以要采用BS架构方式实现项目
A1:WEB3D之所以将来会用的越来越多,主要是因为计算机硬件制造工艺的提升,使缺乏执行效率的程序,能够在越来越多的计算机中运行。
我拿Java和C语言做比较,BS架构程序使用C语言实现来得更有效率,但是,开发成本高,而且目前的主流计算机已经能满足Java的运行需要,所以现在BS架构的程序基本上是采用Java或类似的高级语言来完成。
Q2:很多单位正在采用或将要采用WEB3D方式来制作3D应用程序
A2:
第一:其它公司的项目需求同我们公司的项目需求不同。
第二:不同公司技术实力和技术特长不同,他人的实现方式不一定符合我们的情况
第三:这个项目是我们现在要做的,而不是将来要做的,在计算机技术日新月异的情况下这一点不值得考虑。
Q3:现在一些单位采用WEB 3D方式实现了3D,应用效果不错
A3: 那是他们渲染的3D物体很简单,否则,技术实力和经济实力雄厚的Blizzard公司早就在“魔兽世界”中采纳这种方案了。其它回答参考A2。
Q4:采用WEB 3D方式实现3D,数据量少,而且用户不需要安装软件
A4:普通用户看上去会有种错觉,以为WEB 3D方式不需要安装,磁盘空间占用量少,实际上采用BS架构方式实现3D渲染所需要的数据不是一次性存放在磁盘空间上的。由于,BS架构的程序需要借助驻留在IE中的插件(解释器或虚拟机),占用内存和CPU资源比桌面级应用程序来的多。这点可以参考本文“第一部份:3D物体在图形显示系统的表达”和民“第二部份:程序性能上的比较”。
本文总结:
Web3D现在还没有强有力的业界标准,绝大多数Web3D引擎不支持硬件加速。少数引擎虽然支持硬件加速,功能也极有限,而且还处在完善阶段。有兴趣的读者可以在网上搜索引擎中输入Silver light、Flash、Web3d等关键字,查阅有关各Web3D支撑平台硬件加速方面的资料。
补充阅读资料
《Web3D技术历史和现状》
http://www.hudong.com/wiki/Web3D技术
《Silver light 3将支持3D图像和硬件加速》
http://developer.51cto.com/art/200902/107858.htm
《Google Chrome将内建3D硬件加速支持》
http://www.web3donline.com/article/show-2637-1.html