基于这篇文章,我正在写一小段关于3D模型渲染的代码:http://active.tutsplus.com/tutorials/3d/quick-tip-displaying-a-3d-model-with-papervision3d/
我下载了一个免费的DAE文件(car_shell_001.dae)和一个纹理(vehicle_texture.jpg)。
我只是复制了example中的代码,将文件指针更改为我的文件。代码如下:
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文件会很有用,请告诉我:)
发布于 2013-02-10 18:12:25
在3D引擎和3D编辑器之间测量单位不同是很常见的(实际上在编辑器之间你可以观察到:例如,只需从Blender导出一个立方体,然后在Sketchup/3dsmax/等中检查它)。
你能做的最简单的事情就是在初始化模型后放大它:
bikeModelDAE.scale = 10;//or any other value that works best for you另一个有效的选项是使用相机缩放/聚焦选项。如果只有一个模型要显示,则可以使用任何一种方法(对象比例、摄影机属性),但如果有多个模型,最好确保在模型之间使用相似的比例。
有点离题,我想你应该知道Papervision自2010年以来就没有更新过了。我建议尝试使用仍在开发中的引擎,例如Away3D。
https://stackoverflow.com/questions/14796487
复制相似问题