by RoadRunner » Thu Jul 10, 2025 4:59 am
Yeah, creating normalmaps from scratch is not easy, especially if you're working from a texture rather than a proper diffuse/albedo map and using correct height and surface information exported directly from a 3D modelling application or some such. Just generating height and normal maps (with a tool like AwesomeBump, for example) from a photo or texture that already has lighting information baked into it is an uphill struggle, nevermind also generating the proper PBR maps to go with it!
With regard to your example, that is by design, and always has been AFAIK. When creating materials for GZDoom, all of the map files for the chosen material workflow need to be present otherwise it will not work in-game. For a PBR material like the ones I'm using, you MUST have the all of the following maps present: normalmap / ao / roughness / metallic. You can leave the custom displacement shader out, but all 4 material maps must be present for GZDoom to display a PBR material otherwise it will just show a normal texture. Also, I believe the specular and glossiness values do not do anything when using the PBR workflow, they're for the normal/specular workflow only, so you can leave those out too (this is why they are missing from my original examples.)
If you aren't bothered about PBR and want to make things a bit easier on yourself, you can still use an old-style normal/spacular workflow instead, which only requires the normalmap and the specular to be present. Even in this case though, if only the normalmap is there, it won't work. This has always been the case with GZDoom, even before 4.10.
The GLDEFS documentation is actually pretty good at covering all of this: -
https://zdoom.org/wiki/GLDEFS#Materials
The problem I've been having is that both of those examples should work exactly the same and yet, with any GZDoom version from 4.11 onwards, they do not. Having the material maps in the "auto" folders should mean that we do not need to define them in GLDEFS at all, they should be automatically detected by the game providing the files are there. This is why it works for you in 4.10 even after you added the remarks to GLDEFS excluding them - the files are still being autodetected. For any version after 4.10, autodetection now only seems to work if there are also no definitions attached to the material in GLDEFS.
Yeah, creating normalmaps from scratch is not easy, especially if you're working from a texture rather than a proper diffuse/albedo map and using correct height and surface information exported directly from a 3D modelling application or some such. Just generating height and normal maps (with a tool like AwesomeBump, for example) from a photo or texture that already has lighting information baked into it is an uphill struggle, nevermind also generating the proper PBR maps to go with it!
With regard to your example, that is by design, and always has been AFAIK. When creating materials for GZDoom, all of the map files for the chosen material workflow need to be present otherwise it will not work in-game. For a PBR material like the ones I'm using, you MUST have the all of the following maps present: normalmap / ao / roughness / metallic. You can leave the custom displacement shader out, but all 4 material maps must be present for GZDoom to display a PBR material otherwise it will just show a normal texture. Also, I believe the specular and glossiness values do not do anything when using the PBR workflow, they're for the normal/specular workflow only, so you can leave those out too (this is why they are missing from my original examples.)
If you aren't bothered about PBR and want to make things a bit easier on yourself, you can still use an old-style normal/spacular workflow instead, which only requires the normalmap and the specular to be present. Even in this case though, if only the normalmap is there, it won't work. This has always been the case with GZDoom, even before 4.10.
The GLDEFS documentation is actually pretty good at covering all of this: -
[url]https://zdoom.org/wiki/GLDEFS#Materials[/url]
The problem I've been having is that both of those examples should work exactly the same and yet, with any GZDoom version from 4.11 onwards, they do not. Having the material maps in the "auto" folders should mean that we do not need to define them in GLDEFS at all, they should be automatically detected by the game providing the files are there. This is why it works for you in 4.10 even after you added the remarks to GLDEFS excluding them - the files are still being autodetected. For any version after 4.10, autodetection now only seems to work if there are also no definitions attached to the material in GLDEFS.