Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
Substance Painter channels all use different color space and bit depth. The height map even uses negative values, which Photoshop can't handle. Merging all this information in a single PSD file is tricky to say the least.
The current PSD export was a specific request from some of our AAA customers.
We do have plans to make a full PSD exporter happen at some point though, but it requires a lot of thinking and engineering to make it work flawlessly.
I know Photoshop doesn't handle negative values but really neither does anything else. All you need to do is set a 0.5 value as the 0 point and that's all there is to it. I assumed that's what Painter was actually doing in the background and am confused as to why you would do it any other way. I'm somewhat at a loss of explaination as when I export a height channel, that's what I'm getting anyway...a traditional 0-255 range of colors (black to white). -255 to +255 is unnecessary.
As for color and bit depths, simply export all layers at whatever the highest layer dictates. I use this for games and most engines don't take 32bit or even 16bit per channel images anyway, so an 8bit conversion is I think the most common result. Either way, even if Painter MUST export to a higher bit per channel than the user's output can handle, you've given them a .PSD where it's a flip of a switch to adjust.
I was actually going to include the comment that I can't see how this would work with the normal map exports as you would definitely have to go in and set it up like DDO where the layers are grouped, copied and applied with several bevel and emboss filters with the appropriate colors. (3 in total I believe) All of that having to be grouped so that it can be set to overlay to blend properly with the original normal map.
HOWEVER, you guys don't need that at all as you have the height channel and SP is kind enough to combine the normals together for us. I can't think of a reason I would need the normal map to be separated by layers when I can just use the heightmap and run xnormal or DDS plugin myself should I find I need to add to it.
Again, I'm not going to claim that it's easy. I am, however, going to fully stand behind my claim that it's necessary and well worth the effort. I'm glad to hear you guys are planning on at least looking into the option.
Am I correct that the only thing the PSD exporter does is effectively run the "Load files into stack" script that comes with Photoshop and comps a bunch of flat textures into PSD layers? I'm almost at a loss for words at how you can claim support of PSD exporting in your updates if that's really all it does.
From an implementation standpoint, I'm still not seeing how exporting these layers is that big of an ordeal? It should be fairly straightforward to tell different material types how to normalize their data (shifting the -255 through +255 values in the bump layers to 0 through 255 with 128 as the midpoint) and then having an internal script that just runs through isolating layers and exporting them into temp files that can then be comped together into a PSD akin to what you're doing now.
Heck, you could give user control to the normalization values as well in case a particular project someone is working on is doing something funky, so there'd be a set of inputs in the PSD exporter for how they want Base, Height, Roughness, Metallic, and Normal maps to be normalized. Give the user the option to choose their own bit depth if that's an issue as well, so they could choose to keep all the values you're working with in a 16 or 32 bit PSD or drop down to 8 bit if they don't care (or like Hitpawz suggested, simply use the highest bit depth necessary to ensure nothing is lossy).
But seriously, given that texture exporter scripts for Photoshop already exist that simply churn through PSDs by enabling and disabling layer visibility and then saving the resulting visible document, I can't fathom how this would be so difficult. Turn off visibility for all but one layer, grab its mask and plug that into the alpha channel and then kick out a TIFF or 32bit TGA (or if the separation between mask and alpha channel is too hard, just generate new images for the masks themselves), then just have a version of your existing PSD exporter run through and comp them together. Obviously you'll lose the dynamism of some of the effects you have in Painter now, but anyone porting to Photoshop will be aware the programs don't function the same and those effects will be flattened.