可在Sceneform和ARCore中渲染的ShapeFactory的Invisibletransparent材料。

问题描述 投票:2回答:1

我试图为一个用以下方法创建的立方体渲染材料创建一个完全透明的材料。ShapeFactory. 我把这个立方体渲染成一个大的矩形表面来做一个无限的地板,并且需要它完全透明。

我尝试使用MaterialFactory的 makeTransparentWithColor() 以0.0的alpha来实现。然而,这个立方体并没有变得不可见,尽管它有一点透明。下面是我使用的代码。

    MaterialFactory.makeTransparentWithColor(context, Color(0f, 0f, 255f, 0f)).thenAccept { material ->

        val size = Vector3(100f,0.001f,100f)
        val center = Vector3(0f,0f,0f)
        val floorRenderable = ShapeFactory.makeCube(size,center,material)
        floorRenderable.isShadowCaster = false
        floorRenderable.isShadowReceiver = false

        floorAnchorNode.renderable = floorRenderable
    }

有什么办法可以让ShapeFactory的立方体变成隐形材料吗?我看到 这个 Github问题,这可能表明我可以以某种方式创建一个包含自定义材质的虚拟渲染器,并带有一个未发光的阴影模型,然后在makeCube()中应用该渲染器材质?肯定有更好的方法,类似于ARKitSceneKit的 SCNNode不透明度. 请你,如果你知道什么,我很感激任何帮助我可以得到。

android augmented-reality arcore sceneform android-augmented-reality
1个回答
1
投票

仅仅因为这里使用的光照和材料,它不可能是完全透明的。

如果你需要做一些不可见的东西,不要设置任何renderable。而如果你只是想拦截触摸,就用碰撞来代替 。

floorAnchorNode.collisionShape = Box(size, center)
© www.soinside.com 2019 - 2024. All rights reserved.