Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

382
Visualizações
Objeto agregado en el plano vertical siempre girado en ARCore

ingrese la descripción de la imagen aquí

Estoy agregando una imagen en un plano vertical en Sceneform ARFragment. Pero siempre se rota. El código funciona bien en el plano horizontal. Mi código para colocar imágenes en el plano vertical es el siguiente:

 arFragment.setOnTapArPlaneListener { hitResult: HitResult, plane: Plane, motionEvent: MotionEvent -> if(!isOnceTapedOnSurface) { val anchor = hitResult.createAnchor() val anchorNode = AnchorNode(anchor) anchorNode.setParent(arFragment.arSceneView.scene) andy = TransformableNode(arFragment.transformationSystem) if(plane.type == Plane.Type.VERTICAL) { val anchorUp = anchorNode.up andy.setLookDirection(Vector3.up(), anchorUp) } andy.setParent(anchorNode) andy.renderable = andyRenderable andy.select() // arFragment.arSceneView.planeRenderer.isVisible = false isOnceTapedOnSurface = true } }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Para solucionar este problema, puede utilizar la solución anterior. Pero debes rotar un objeto usando la rotación mundial. No utilice la rotación local. Necesitamos poner a cero el valor de rotación. Si está utilizando la rotación local, el objeto se comportará como una rotación de ancla (principal). Entonces, al usar la rotación mundial, podemos controlar el objeto.

String planeType = "";

//Al tocar la superficie puede obtener la orientación del ancla

 if (plane.getType() == Plane.Type.VERTICAL){ planeType = "Vertical"; }else if (plane.getType() == Plane.Type.HORIZONTAL_UPWARD_FACING){ planeType = "Horizontal_Upward"; }else if (plane.getType() == Plane.Type.HORIZONTAL_DOWNWARD_FACING){ planeType = "Horizontal_Downward"; }else { planeType = "Horizontal"; }``` // First set object world rotation zero transformableNode.setWorldRotation(Quaternion.axisAngle(new Vector3(0, 0f, 0), 0)); // check plane type is vertical or horizontal if it is vertical below logic will work. if (planeType.equals("Vertical")) { Vector3 anchorUp = anchorNode.getUp(); transformableNode.setLookDirection(Vector3.up(), anchorUp); }
over 4 years ago · Santiago Trujillo Relatório

0

Para solucionar este problema, debe configurar public Pose getCenterPose() . Devuelve la pose del centro del plano detectado, definido para tener el origen. El eje +Y transformado de la pose será un punto normal fuera del plano, con los ejes +X y +Z orientando las extensiones del rectángulo delimitador.

 anchor = mySession.createAnchor(plane.getCenterPose())

Cuando su estado rastreable es TRACKING , esta pose se sincroniza con el último fotograma. Cuando su estado rastreable está PAUSED , se devolverá una pose de identidad.

Su código podría ser el siguiente:

 Anchor newAnchor; for (Plane plane : mSession.getAllTrackables(Plane.class)) { if(plane.getType() == Plane.Type.VERTICAL && plane.getTrackingState() == TrackingState.TRACKING) { newAnchor = plane.createAnchor(plane.getCenterPose()); break; } }

Una cosa más de los ingenieros de software de Google ARCore :

Keep objects close to anchors .

Al anclar objetos, asegúrese de que estén cerca del ancla que está utilizando. Evite colocar objetos a más de unos pocos metros del ancla para evitar movimientos de rotación inesperados debido a las actualizaciones de ARCore a las coordenadas del espacio mundial.

Si necesita colocar un objeto a más de unos pocos metros de un anclaje existente, cree un nuevo anclaje más cerca de esta posición y adjunte el objeto al nuevo anclaje.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda