2013-04-15 3 views
3

Я в настоящее время не знаком с программированием расширенной реальности, и я хотел бы задать вопрос о CameraView. Моя цель - отобразить clickable imageButton в конкретной реальной координате и отобразить его в CameraView. В этом случае вещь, которую я хочу отображать внутри моего CameraView (который является миром), - это моя кнопка. Я пробовал использовать API Wikitude/AndAR/Layar, прежде чем я решил, что это вызов для вызова его разрешения на использование, и в настоящее время я использую DroidAR в качестве библиотеки и ссылки. Однако я не могу найти способ показать, что я хочу правильно. Я хотел бы обратиться за помощью в этом вопросе. Пожалуйста, посоветуйте мне или дайте мне правильный способ ее достижения. Большое спасибо ! Ниже приведены мои текущие коды, используя SDK библиотеки droidAR.Java Android дополненная реальность Приложение Image Координаты

public class DisplayAR extends Setup { 
private static final float MIN_DIST = 15f; 
private static final float MAX_DIST = 55f; 

private Button b = null; 
protected static final String LOG_TAG = "StaticDemoSetup"; 

World world; 
GLCamera camera; 

private TimeModifier timeModifier; 


@Override 
public void _a_initFieldsIfNecessary() { 

    // allow the user to send error reports to the developer: 
} 


@Override 
public void _b_addWorldsToRenderer(GL1Renderer renderer, 
     GLFactory objectFactory, GeoObj currentPosition) { 

    camera = new GLCamera(new Vec(0, 0, 1)); 
    world = new World(camera); 

    timeModifier = new TimeModifier(1); 
    RenderList l = new RenderList(); 
    timeModifier.setChild(l); 
    world.add(timeModifier); 

    initI9Tests(world); 

    addTestGeoObj(world, camera); 

    renderer.addRenderElement(world); 

} 

private void addTestGeoObj(World w, GLCamera c) { 
    GeoObj o = new GeoObj(); 
    w.add(o); 
} 

private void initI9Tests(World w) { 

    { 
     // transform android ui elements into opengl models: 
     b = new Button(getActivity()); 
     b.setText("L.311"); 

     MeshComponent button = GLFactory.getInstance().newTexturedSquare("buttonId", IO.loadBitmapFromView(b)); 
     button.addChild(new AnimationFaceToCamera(camera, 0.5f)); 
     button.setScale(new Vec(10, 10, 10)); 
     button.setColor(Color.red()); 
     button.setOnClickCommand(new CommandShowToast(getActivity(), "THIS IS L.311")); 
     GeoObj treangleGeo = new GeoObj(); 
     treangleGeo.setVirtualPosition(new Vec(MIN_DIST, MAX_DIST, 0.0f)); 
     treangleGeo.setComp(button); 
     w.add(treangleGeo); 
    } 
} 

@Override 
public void _c_addActionsToEvents(EventManager eventManager, 
     CustomGLSurfaceView arView, SystemUpdater updater) { 

    ActionWASDMovement wasdAction = new ActionWASDMovement(camera, 25f, 
      50f, 20f); 
    ActionRotateCameraBuffered rotateAction = new ActionRotateCameraBuffered(
      camera); 

    eventManager.addOnLocationChangedAction(new ActionCalcRelativePos(
      world, camera)); 

    updater.addObjectToUpdateCycle(wasdAction); 
    updater.addObjectToUpdateCycle(rotateAction); 

    arView.addOnTouchMoveAction(wasdAction); 
    eventManager.addOnOrientationChangedAction(rotateAction); 

    eventManager.addOnTrackballAction(new ActionMoveCameraBuffered(camera, 
      5, 25)); 

} 

@Override 
public void _d_addElementsToUpdateThread(SystemUpdater worldUpdater) { 
    // add the created world to be updated: 
    worldUpdater.addObjectToUpdateCycle(world); 

} 

@Override 
public void _e2_addElementsToGuiSetup(GuiSetup guiSetup, Activity activity) { 

    guiSetup.setBottomMinimumHeight(50); 
    guiSetup.setBottomViewCentered(); 

} 

}

ответ

1

пытается использовать Wikitude библиотеки для дополненной реальности в www.wikitude.com это пример образца simpleArbrowser является то, что у хотело

+0

Ну я попробовал, что, прежде чем я перешел в настоящее время DroidAR , У Wikitude есть некоторые довольно неприятные разрешения, чтобы пройти до доступа к любому из его API, и поэтому я перешел к DroidAR. Спасибо за помощь в любом случае. Спасибо за предложение. Я забыл заполнить часть, которую я уже использовал, какой тип API/SDK. Я отредактирую их сейчас. = D – CodeNewbie

+1

попробуйте использовать образец примера, вам ничего не нужно менять, так как он работает только на устройстве и просто передает ваши данные в виде строкового массива в wikitude, дополненную реальность. Mainactivity примерного примера –

+0

попробовал и он работает = D И это не так много хлопот, чтобы использовать его, а не запрашивать разрешение на использование других API. Nice = D – CodeNewbie

Смежные вопросы