我正在构建一个使用AR的Android APP,并且为此我使用了sceneform软件包。我通过从外部URI下载相应的.sfb来显示其ModelRenderable的3D模型。我需要它能够在触摸某个按钮时更改模型的颜色。我已经尝试了一千种没有运气的方法。有没有简单的方法可以做到这一点?非常感谢!
答案 0 :(得分:2)
您是否曾尝试单击模型来设置新材质(https://developers.google.com/ar/reference/java/com/google/ar/sceneform/rendering/Renderable#setMaterial(com.google.ar.sceneform.rendering.Material)?
您还可以更改可渲染对象的材料。由于Renderable的所有实例共享相同的模型实例,因此在更改材质之前进行复制是一个好主意。否则,所有其他节点也会受到更改的影响。
val renderableCopy = originalRenderable.makeCopy()
val changedMaterial = renderableCopy.material.makeCopy()
changedMaterial.setFloat3("baseColorTint", Color(android.graphics.Color.rgb(0,255,0)))
renderableCopy.material = changedMaterial
是否需要更改baseColor或baseColorTint取决于您的SFA文件。是否在此处使用baseColor或baseColorTint设置颜色。
答案 1 :(得分:0)
您也可以从.sfb模型调用mtl id并在其中传递纹理