如何在sceneform中更改可渲染的颜色/纹理?

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

我正在构建一个使用AR的Android APP,我使用的是sceneform包。我通过从外部URI下载相应的.sfb来显示我的ModelRenderable的3D模型。我需要它才能在触摸某个按钮时更改模型的颜色。我已经尝试了一千种没有运气的方法。有没有简单(或没有)这样做的方法?非常感谢!

android textures augmented-reality arcore sceneform
2个回答
2
投票

您是否尝试设置新材料(单击模型时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设置颜色。


0
投票

你也可以从.sfb模型中调用mtl id并在其中传递纹理

© www.soinside.com 2019 - 2024. All rights reserved.