使用SceneForm,我正在显示一个3D对象,该对象是从外部存储的SFB文件中获取的,并且需要更改其颜色。有没有办法修改文件以更改其颜色?
材料只是颜色:
newmtl Steel _-_ Satin
Kd 0.627451 0.627451 0.627451
我想避免:
谢谢!
答案 0 :(得分:0)
一种在运行时设置可渲染颜色的方法是通过更改“ baseColorTint” 材质参数。以下是如何着色可渲染红色的示例:
renderable.getMaterial().setFloat4("baseColorTint", new Color(1.0f, 0.0f, 0.0f, 1.0f));
此外,如果您希望将每个可渲染对象的多个副本设置为不同的颜色,则可以执行以下操作:
Renderable tintedRenderable = originalRenderable.makeCopy();
tintedRenderable.getMaterial().setFloat4("baseColorTint", new Color(1.0f, 0.0f, 0.0f, 1.0f));
注意,这可以通过乘以来自对象纹理的“ baseColor” 来实现。如果对象在着色之前是纯白色的,则效果最好。
此外,不同的sfb可以具有不同的材料参数集。通过查看.sfa文件的“ parameters”块,您可以了解sfb中存在哪些材料参数。您还可以编写带有自己的材料参数的custom material,并使用它来控制sfb在运行时的外观和感觉。