Open antonWetzel opened 1 year ago
This may be related to how #69741 was fixed. I don't think it is a regression as previously "\<Unnamed Material>" caused editor crashes, but is still not what I would expect to have happen.
I have the same issue. My objective is to reuse the materials created in Godot and I don't want to import the materials from Blender. I don't know what's the best practice or best workflow to import 3D models of type GLB. Is there any other temporary solution to this issue?
I am relatively new to Godot. But could it be that Godot thinks the file is already exported? It says "Already external". But there is no file anywhere.
I have deleted all the cache files, but the problem is still the same.
I can't export the.tres file from my .glb files. For some reason, another side effect is that changing other shaders no longer affects my models. They are all white.
My objective is to reuse the materials created in Godot and I don't want to import the materials from Blender. I don't know what's the best practice or best workflow to import 3D models of type GLB.
@maridany1999
Static models we export from Blender with GLB/material placeholder, and copy over the binary textures. In Godot we manually recreate the material, save it to disk as tres, and place it in the override slot on the mesh.
We import animated models twice. Once with animations, which are extracted and saved to an animation library as text. Then again without animations, which is the only GLB saved.
Everything possible is saved as git-friendly, easily modifiable tres: the materials and animation library. Only the textures and mesh data (saved as GLB) are binary. The GLB contains only the mesh data; no textures or animations. We make a mesh scene inheriting the GLB, and that inheritance is never broken. The mesh is the only thing that can't be changed. With this setup, textures can be replaced, and animations and materials can be changed.
We don't do anything with materials in the importer. To date, none of them have worked for us anyway. The only thing I generally do in there is adjust LOD generation or root node type.
@TokisanGames Thanks! Those methods seem good! Regarding the static models, will it be more expensive placing the materials on the Material Override Slots instead of the default Materials Slots?
Should make no difference.
Godot version
4.0.dev (https://github.com/godotengine/godot/commit/d0a2a4c98195eb8a43713286b5b865dfbed05163)
System information
Windows 11
Issue description
If the mesh does not have a Material a empty Material is used (\<Unnamed Material> in the advanced import settings and empty name in the Scene). The option "Use External" exists but does not work for these Materials; the empty Material is used.
I think the option should not be removed but fixed for unnamed materials because it enables a workflow with all Materials in Godot (instead of Blender, ...).
Steps to reproduce
Geometry -> Materials
selectPlaceholder
orNo exports
.blend
and forMaterials -> Export Materials
selectPlaceholder
Use External Material -> enabled
and choose replacement pathResult has a empty Material.
Minimal reproduction project
Test.zip
Original
does not use the external MaterialPlaceholder
does not export the original Material (external does not work)NoMaterial
does not have a original Material (external does not work)Material
imports the original Material (external works)