首页 > 解决方案 > 可在 Sceneform 和 ARCore 中渲染的 ShapeFactory 的不可见/透明材质

问题描述

我正在尝试为使用ShapeFactory创建的可渲染立方体创建完全透明的材质。我使用这个可渲染的立方体作为一个大的矩形表面来制作无限的地板,并且需要它是完全透明的。

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

    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()?肯定有更好的方法,类似于 ARKit/SceneKit 的SCNNode opacity。拜托,如果您对此有所了解,我将不胜感激。

标签: androidaugmented-realityarcoresceneformandroid-augmented-reality

解决方案


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

如果您需要使某些东西不可见,请不要设置任何可渲染。如果您只是想拦截触摸,请改用碰撞:

floorAnchorNode.collisionShape = Box(size, center)

推荐阅读