저는 현재 증강 현실 프로그래밍을 처음 접했고 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();
}
}
원하는 것을 샘플 예이다 것을 나는 현재 DroidAR까지 가기 전에 . Wikitude는 API에 액세스하기 전에 통과 할 수있는 아주 불쾌한 권한을 가지고 있으므로 DroidAR로 갔다. 어쨌든 도움을 주셔서 감사합니다 제안을 주셔서 감사합니다. 이미 API/SDK의 유형을 사용한 부분을 채우는 것을 잊어 버렸습니다. 나는 그것들을 지금 편집 할 것이다. = D – CodeNewbie
예제를 사용하려고 시도한다. 사용 권한에 관한 어떤 것도 바꿀 필요가 없다. 단지 장치에서만 작동하고, 문자열 배열로서 데이터를 wikitude에 전달한다. 증강 현실 thr 주 활동 예 –
시도해 본다. 그것은 작동합니다. D 그리고 다른 API를 사용할 수있는 권한을 요청하기보다는 사용하는 것이 번거롭지 않습니다. 니스 = D – CodeNewbie