0

我正在根据这篇文章编写一小段关于 3D 模型再现的代码:http: //active.tutsplus.com/tutorials/3d/quick-tip-displaying-a-3d-model-with-papervision3d/

我下载了一个免费的 DAE 文件 (car_shell_001.dae) 和一个纹理 (vehicle_texture.jpg)。

我只是从示例中复制了代码,将文件指针更改为我的文件。这是代码:

public class Tarini extends BasicView
    {
        [Embed(source="Assets/car_shell_001.dae", mimeType="application/octet-stream")]
        private var bikeModelClass:Class;

        [Embed(source="./Assets/vehicle_texture.jpg")]
        private var bikeTextureClass:Class;

        private var bikeModelDAE:DAE;

        public function Tarini() 
        {
            this.loaderInfo.addEventListener ( Event.COMPLETE, onFullyLoaded ) ;
        }

        private function onFullyLoaded(e:Event):void 
        {
                var bitmap:Bitmap = new bikeTextureClass ( ) ;

                var bitmapMaterial:BitmapMaterial = new BitmapMaterial ( bitmap.bitmapData ) ;

                var materialsList:MaterialsList = new MaterialsList ( ) ;
                materialsList.addMaterial ( bitmapMaterial, "all" ) ;

                var byteArray:ByteArray = new bikeModelClass ( ) ;

                bikeModelDAE = new DAE ( ) ;
                bikeModelDAE.load ( byteArray, materialsList ) ;

                this.scene.addChild ( bikeModelDAE ) ;

                this.camera.z = 500;

                this.startRendering ( ) ;
        }

    }

这很简单,我喜欢它。我用 mxmlc 编译,我没有编译错误。当我打开生成的 swf 时,我在浏览器的中心获得了一个非常小的再现。

有什么问题?我需要以某种方式强制尺寸?如果您认为拥有 dae 和 jpg 文件会有用,请告诉我 :)

4

1 回答 1

0

3D 引擎和 3D 编辑器之间的测量单位不同是很常见的(实际上只是在编辑器之间,您可以观察到:只需从 Blender 导出一个立方体,然后在 Sketchup/3dsmax/等中检查它。)

您可以做的最简单的事情是在初始化模型后放大模型:

bikeModelDAE.scale = 10;//or any other value that works best for you

另一个有效的选项是使用相机变焦/对焦选项。如果您只有一个模型要显示,您可以使用任一方法(对象比例、相机属性),但如果您有多个模型,最好确保在模型之间使用相似的比例。

有点跑题了,我假设你知道 Papervision 自 2010 年以来就没有更新过。我建议尝试使用仍在开发中的引擎,例如Away3D

于 2013-02-10T10:12:25.053 回答