【问题标题】:3D model manipulation in Augmented Reality增强现实中的 3D 模型操作
【发布时间】:2011-06-22 06:04:57
【问题描述】:

我正在使用 FLARManager 和 papervision3d 来实现一个小型增强现实 hack。

我的要求是在单击按钮时偏航模型。

这是我到目前为止所做的:

public class AugmentedReality extends Sprite
{
    private var flarManager:FLARManager;        
    private var scene:Scene3D;
    private var camera:FLARCamera3D;
    private var viewport:Viewport3D;
    private var renderEngine:LazyRenderEngine;
    private var pointLight:PointLight3D;        
    private var activeMarker:FLARMarker;
    private var model:DAE;
    private var modelContainer:DisplayObject3D;

    public function AugmentedReality()
    {           
        start();
    }

    private function start():void
    {
        flarManager = new FLARManager("../resources/flar/flarConfig.xml");
        addChild(Sprite(flarManager.flarSource));
        flarManager.addEventListener(FLARMarkerEvent.MARKER_ADDED, onMarkerAdded);
        flarManager.addEventListener(FLARMarkerEvent.MARKER_UPDATED, onMarkerUpdated);
        flarManager.addEventListener(FLARMarkerEvent.MARKER_REMOVED, onMarkerRemoved);          
        flarManager.addEventListener(Event.INIT, onFlarManagerInited);
    }

    private function onFlarManagerInited(evt:Event):void
    {
        flarManager.removeEventListener(Event.INIT, onFlarManagerInited);           
        scene = new Scene3D();          
        camera = new FLARCamera3D(flarManager.cameraParams);            
        viewport = new Viewport3D(stage.stageWidth, stage.stageHeight);
        addChild(viewport);
        renderEngine = new LazyRenderEngine(scene, camera, viewport);
        model = new DAE(true, "model", true);
        model.load("../resources/assets/geom.dae");
        model.scale = 30;
        modelContainer = new DisplayObject3D();
        modelContainer.addChild(model);
        modelContainer.visible = false;
        scene.addChild(modelContainer);
        addEventListener(Event.ENTER_FRAME, loop);
    }

循环事件处理程序如下:

    private function loop(evt:Event):void
    {       
        if (activeMarker) {
            modelContainer.transform = FLARPVGeomUtils.convertFLARMatrixToPVMatrix(activeMarker.transformMatrix);
        }
        renderEngine.render();
    }

我有一个按钮处理程序如下:

    public function onButtonClicked(event:Event):void
    {
        model.yaw(1);
    }

它似乎根本没有对模型做任何事情...... :(

请帮忙!!!!!!!!!!!!!!!

【问题讨论】:

    标签: 3d augmented-reality papervision3d collada flartoolkit


    【解决方案1】:

    尝试在“循环”或任何您的内部循环中调用“偏航”。然后,您将能够确保“偏航”按预期工作。如果它工作正常,则可能是“onButtonClicked”的签名错误或未正确连接。

    【讨论】:

      猜你喜欢
      • 2011-12-07
      • 2013-02-26
      • 2023-04-03
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 2017-10-30
      • 2010-10-14
      • 1970-01-01
      相关资源
      最近更新 更多