2013-04-15 2 views
3

저는 현재 증강 현실 프로그래밍을 처음 접했고 cameraView에 관한 질문을하고 싶습니다. 내 목표는 특정 실제 좌표에 클릭 가능한 imageButton을 표시하고 cameraView에 표시하는 것입니다. 이 경우 내 cameraView 내에서 표시하고 싶은 것은 내 버튼입니다. Wikitude/AndAR/Layar API를 사용해 보았습니다. 사용하기 전에 해당 사용 권한을 호출하기가 번거롭고 현재 DroidAR를 라이브러리 및 참조로 사용하고 있습니다. 그러나 나는 내가 원하는 것을 표시하는 방법을 찾지 못하는 것 같습니다. 이 문제와 관련하여 도움을 요청하고 싶습니다. 나에게 조언을하거나 정확한 방법을 안내해주십시오. 고마워요! 아래는 droidAR 라이브러리 SDK를 사용하는 현재 코드입니다.Java Android Augmented Reality 애플리케이션 이미지 좌표

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

시도 www.wikitude.com에서 증강 현실에 대한 위키 튜드 (Wikitude) 라이브러리를 사용하는이 simpleArbrowser 유 그럼 내가 시도

+0

원하는 것을 샘플 예이다 것을 나는 현재 DroidAR까지 가기 전에 . Wikitude는 API에 액세스하기 전에 통과 할 수있는 아주 불쾌한 권한을 가지고 있으므로 DroidAR로 갔다. 어쨌든 도움을 주셔서 감사합니다 제안을 주셔서 감사합니다. 이미 API/SDK의 유형을 사용한 부분을 채우는 것을 잊어 버렸습니다. 나는 그것들을 지금 편집 할 것이다. = D – CodeNewbie

+1

예제를 사용하려고 시도한다. 사용 권한에 관한 어떤 것도 바꿀 필요가 없다. 단지 장치에서만 작동하고, 문자열 배열로서 데이터를 wikitude에 전달한다. 증강 현실 thr 주 활동 예 –

+0

시도해 본다. 그것은 작동합니다. D 그리고 다른 API를 사용할 수있는 권한을 요청하기보다는 사용하는 것이 번거롭지 않습니다. 니스 = D – CodeNewbie

관련 문제