flex利用Papervision3D进行三维浏览
本文主要涉及Google SketchUp的建模和Flex中使用开源(MIT许可)的Papervision3D库进行模型加载和使用。
这是一个对“水立方”进行建模表现的例子,当然,这个模型不是我做的,而是从在线模型库中下载的。事实上,使用SketchUp可以用比3DS Max等专业建模软件简单得多的操作来进行建模,同时,你也可以导入其它建模软件的模型(3ds、dwg等)。而使用SketchUp的主要目的在于其特殊的导出功能——KMZ格式。
建模以后导出的格式是个问题,我采用了KMZ方案,一方面将纹理和模型全部包含在一个ZIP文件中,很清爽,Flex中也能很方便地加载;另一方面,KMZ的模型可以直接在Google Earth中打开。
把“WaterCube.kmz”放到Flex项目的bin目录下,下面就是如何在Flex中使用它了。Flex的Papervision3D库可以从 http://code.google.com/p/papervision3d/ 获得,可以导入swc库,抑或直接导入源代码都可。
对于一个KMZ的模型来说,Papervision3D的处理出奇简单,几行代码就可以搞定,免了你使用单纯顶点模型再加载纹理进行贴图的诸多麻烦:
var model:KMZ = new KMZ();
model.load("WaterCube.kmz");
this._scene.addChild(model);