Godot Version
Godot 4.7
Question
Hello there!
I’m trying to make a mesh imported from Blender to Godot with multiple materials show its Vertex Colors for all surfaces/materials of the mesh. Right now I can only make the mesh display the Vertex Colors on the material assigned to the first slot, which I find really strange. As I understand, the Vertex Color data should be stored in the mesh, and as such, any material with “Use As Albedo” turned on should display it, but it’s always only the first material that shows the Vertex Colors, none other.
Here are the details for my setup:
- I am importing a .blend file from Blender to Godot which reimports everytime I change the .blend file in Blender.
- In Godot, I have extracted the materials from the .blend file, so I can edit them and apply them automatically to the reimported .blend file. On all of these materials in the scene, I have enabled “Use As Albedo” on the Vertex Colors setting, and Vertex Colros are set to “Active” in the advanced imports tab.
- In Blender, I have ONE Color Attribute per mesh, simply called “Color”, which I use to Vertex Paint my meshes. In the Shading tab, I have set up so the Vertex Colors are applied to every material, so that Godot understands that this should be exported too (if I understand correctly).
- Vertex Colors always show up correctly in Blender, but in Godot I can only see the Vertex Color on the material in the first slot of each mesh… changing the order of the materials in Blender also changes on which material I can see the Vertex Colors (as shown below).
Some visuals of my issue:
Here is my mesh in Blender, where I have Vertex Painted blue color on the floor, as well as on the white ledge, which has a different material. Both display the Vertex Color correctly, and the mesh only has one Color Attribute, as seen below to the right.
Here is that same scene in Godot, when I have the floor as the first material (Surface 0). Then the Vertex Colors show only on the floor, and not on the white ledge. (Also, don’t mind the “changes may be lost”, I temporarily opened the .blend file in Godot to show its materials)
And here is that same scene in Godot, after merely changing the order of the materials in Blender. As you can see, the floor no longer displays the colors, and now only the white ledge is blue.
In very short, all I want to do is to display the Vertex Colors from Blender of the mesh on all materials of each mesh… but as you can see, it does not quite work. This feels like it should be a pretty standard feature, so maybe I’m just doing something incorrectly? (I guess in the worst case scenario I could separate each material as its own mesh, but that sounds hellish to work with…)
I’m super grateful for any help I can get, thanks so much in advance! [:





