【发布时间】:2014-04-11 18:27:32
【问题描述】:
我第一次使用 Away3D,但在运行时简单地加载 3D 模型时遇到了很大的困难。
我正在使用 AIR 4.0 和最新的 Away3D 库。
设置看起来不错,我可以编译没有错误!
我已经尝试了我在网上找到的所有方法,但我会避免你徒劳的尝试。 这是我最新的一个,展示模型缺少什么?它似乎正在根据痕迹加载,但我无法显示它!
如果有帮助,我可以展示我尝试过的其他方法,但我怀疑它不会!
package {
//imports ...
public class Main extends MovieClip{
private var view:View3D;
private var scene:Scene3D;
private var cam:Camera3D;
private var _loader:Loader3D;
public function Main() {
trace("Main()");
initAway();
}
private function initAway():void
{
addChild(new AwayStats());
view = new View3D();
scene = new Scene3D();
cam = new Camera3D();
view.scene = scene;
view.camera = cam;
view.camera.lookAt(new Vector3D());
addChild(view);
Parsers.enableAllBundled();
_loader = new Loader3D();
_loader.load(new URLRequest('/assets/test.obj'));
_loader.addEventListener(LoaderEvent.RESOURCE_COMPLETE, onSceneResourceComplete);
_loader.addEventListener(AssetEvent.ASSET_COMPLETE, onAssetComplete);
}
private function onAssetComplete(event:AssetEvent):void
{
trace("assetType = " + event.asset.assetType );
/*
OUTPUT:
assetType = geometry
assetType = mesh
assetType = material
assetType = material
*/
}
private function onSceneResourceComplete(event : LoaderEvent) : void {
trace("loaded " + event.currentTarget);
// OUTPUT: loaded [object Loader3D
//view.scene.addChild(_loader); //not working
var container : ObjectContainer3D = ObjectContainer3D(event.target);
view.scene.addChild(container);
}
}
}
在 /assets 中有一个 .obj 和对应的 .mtl 文件
【问题讨论】:
-
你设置好你的相机位置了吗?它是在代码的不同部分还是根本不存在?如果它位于 (0,0,0) 并且您也将
lookAt运行到 (0,0,0),那么您可能已经破坏了您的视图矩阵。 -
这是 atm 的代码。我确实在 lookAt 方法之前的某个时间点设置了一个凸轮位置,但它似乎没有什么不同,然后我又把它拿出来了。我会再试一次。所以你在 LoaderEvent 中的这段代码应该显示模型吗?谢谢回复顺便说一句
-
刚试了,还是空场……
-
我不知道你的库的细节,所以我不能在这里帮助你,我只是有一些想法要检查:)。你能在屏幕上渲染任何几何图形吗?
标签: actionscript-3 3d air away3d .obj