我正在构建一个使用AR的Android APP,我使用的是sceneform包。我通过从外部URI下载相应的.sfb来显示我的ModelRenderable的3D模型。我需要它才能在触摸某个按钮时更改模型的颜色。我已经尝试了一千种没有运气的方法。有没有简单(或没有)这样做的方法?非常感谢!
您是否尝试设置新材料(单击模型时https://developers.google.com/ar/reference/java/com/google/ar/sceneform/rendering/Renderable#setMaterial(com.google.ar.sceneform.rendering.Material)?
您还可以更改Renderable的材质。由于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设置颜色。
你也可以从.sfb模型中调用mtl id并在其中传递纹理