Recognise Unity ShaderGraph texture slot names - #74
Open
Dremet wants to merge 1 commit into
Open
Conversation
Materials authored against a ShaderGraph shader name their texture properties _Albedo_Map, _Normal_Map, _Emission_Map and _Metallic_Smoothness_Map rather than the built-in _MainTex / _BumpMap / _EmissionMap / _MetallicGlossMap. The albedo fallback in UnidotMaterial.convert_properties() gathers candidate properties but deliberately skips every name ending in "Map" (only *ColorMap and *BaseMap are added back), so a ShaderGraph material matches nothing and converts to a StandardMaterial3D with every texture slot null - white, untextured, and with no warning or failure logged to say so. Found while converting the Synty POLYGON packs, whose shader uses these names exclusively: all ~4,000 materials across four packs came out blank. Adding the names restores albedo and normal maps; verified on Godot 4.7.1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Materials authored against a ShaderGraph shader name their texture properties
_Albedo_Map, _Normal_Map, _Emission_Map and _Metallic_Smoothness_Map rather than
the built-in _MainTex / _BumpMap / _EmissionMap / _MetallicGlossMap.
The albedo fallback in UnidotMaterial.convert_properties() gathers candidate
properties but deliberately skips every name ending in "Map" (only *ColorMap and
*BaseMap are added back), so a ShaderGraph material matches nothing and converts
to a StandardMaterial3D with every texture slot null - white, untextured, and
with no warning or failure logged to say so.
Found while converting the Synty POLYGON packs, whose shader uses these names
exclusively: all ~4,000 materials across four packs came out blank. Adding the
names restores albedo and normal maps; verified on Godot 4.7.1.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com