I understand that there might not be a single ‘best’ way to do this, but I’m looking for some experienced input…
I’ve only done some very limited testing but I know you can import a glb file that was created in Blender and then make that object Local to access all of the constituent components, and/or export the materials from the glb for access/alteration as well.
When creating assets in Blender, when is it better to use Blender vs Godot for setting materials?
What criteria do you use to determine when to set materials in Godot v Blender?
What are some of the pitfalls of using one vs the other?
I love using shaders so I make a lot of Godot materials, typically I export my models with placeholder materials so I can fill them in on Godot’s side.
Importing materials from a GLB is on a best-attempt basis so you should be ready to override the material with Godot. Blender uses a wildly different rendering pipeline so the materials may never match up perfectly, and your game is in Godot, so Godot materials should be the priority.
So even with complex objects, you would import them into Godot, make them local, and do the rest in Godot?
TBH, this seems like the logical way to go since assets might come from a variety of sources and Godot would be the common link.
I guess that also means most or all of the objects/assets would end up being Godot scenes?
I’m just learning about Blender ‘slots’ allowing adding materials based on faces.
So, you could create a striped object by adding faces and alternating colors.
How would you accomplish something like that in Godot? ( a striped cube, for example - if this too far off-topic I can create another post)
It depends on the situation.
You can define a lot in Blender that will be exported to glTF/glb. There is a nice documentation for Blender glTF export:
I prefer to keep the dependency to the glb in Godot. I would try to avoid to make the object local.
You can have dummy materials in the glb and use override as gertkeno suggested.
Maybe read about import scripts in Godot, there you can replace the material on import (not override) and keep the connection to the glb. That can be used to reuse Godot materials (like a wood, stone default material) on many objects of the same material.
That way you can reexport your models and all material tasks will happen automagically.
If you are using the blender object then you can assign two material slots for the stripes and override the two materials in Godot, the stripes will be kept. Superoptimally they would use the same material (and less faces) and a UV map with a stripped texture or generated by a shader.