Android ViroCore: Object3D не в направлении камеры - PullRequest
0 голосов
/ 03 мая 2019

Я использую ViroCore AR lib в моем проекте, когда я обнаруживаю AR Image и загружаю дверь FBX модель в AR портал модель моей двери tild в направлении Y, поэтому я не понимаю, в чем проблема.

Когда я нажимаю на самолет и получаю эти векторы из этой позиции, а затем после того, как помещаю модель двери в эту позицию. Мой код такой:

    private fun createDroidAtPosition(position: Vector) {
        val light = OmniLight()
        light.color = Color.WHITE.toLong()
        light.position = Vector(0f, 1f, -4f)
        mScene.rootNode.addLight(light)

        val shipDoorModel = Object3D()

        shipDoorModel.loadModel(
            mViroView.viroContext,
            Uri.parse(getDoorModel(mPoi.door_id)),
            Object3D.Type.FBX,
            object : AsyncObject3DListener {
                override fun onObject3DLoaded(p0: Object3D?, p1: Object3D.Type?) {
                    Log.e(TAG, "onObject3DLoaded")

                    isDoorLoad = true

                    /**
                     * Hide layout
                     */
                    mTrackListener.hideIsTrackingLayoutUI()


                    var videoPath = SharedPreferenceUtil.getMediaPath("" + mPoi.num)
                    if (videoPath.getFileExtensions().contains("mp4", true)) {
                        val parse = Uri.fromFile(File(videoPath))
                        videoTexture = VideoTexture(mViroView.viroContext, parse)
                        videoTexture.loop = true
                        videoTexture.play()

                        portalScene.setBackgroundTexture(videoTexture)
                    } else {
                        ImageLoader.getBitmap(
                            this@DoorImageWithSurfaceViroActivity,
                            Uri.fromFile(File(videoPath)),
                            object : ImageLoader.OnBitmapReady {
                                override fun onBitmapReady(bitmap: Bitmap) {
                                    val beachTexture = Texture(bitmap, Texture.Format.RGBA8, true, false)
                                    portalScene.setBackgroundTexture(beachTexture)
                                }
                            })
                    }
                }

                override fun onObject3DFailed(p0: String?) {
                    Log.e(TAG, "onObject3DFailed $p0")
                    showError("" + p0)
                }
            })

        val portal = Portal()
        portal.addChildNode(shipDoorModel)

        portalScene = PortalScene()

portalScene.setPosition(shipDoorModel.convertLocalPositionToWorldSpace(position))
        portalScene.setScale(Vector(0.2f, 0.2f, 0.2f))
        portalScene.portalEntrance = portal
        portalScene.isPassable = true

        mScene.rootNode.addChildNode(portalScene)
    }

Ниже этого вывода я хочу повернуть эту дверь ко мне

My output like this I want to rotate that door towards to me

...