Author Topic: 8k texture support  (Read 23426 times)

Hello,
I'd like to know if SD has option for baking 8k texture and exporting 8k textures. I am aware that this software is mainly targeted for the game industry but it would help artists in other spheres of CG industry to utilize this software.

Thanks

Hi,

You can export 8K from SD. However, since the GPU engine is needed, you need to have a very good GPU to get this resolution. If you needed to publish a substance at 8k, you need to go to the preferences>general>Cooker and set the cooking limit to 8192. I was able to export 8K images for this project using an nvidia Geforce 970M 3GB.

Cheers,

Wes

Head of Substance Demo Art Team
the3dninja@adobe.com
Twitter: The3DNinja

Great exactly what I need. I have asus strix 970 4GB so I think It's a good GPU.
Also thank you for your fast reply.

Good to know it now supports 8k maps. :)

But what I don't understand is why larger maps are only possible with the GPU engine, which is obviously limited in terms of VRAM? I would have thought the CPU engine should allow the user to render at any size if they don't care about performance and have plenty of RAM (I have 64gig). There are several cases where it would be useful for me to be able to bake 16k or even 32k maps. These wouldn't be used directly in-game, but as data maps to drive something else.

That would certainly help open up Substance Designer to people who render rather than use game engines.

Hello,

I also need 16k support.
I can increase cooking size limit but it does not seem to render correctly in SD.

Hi,

8k is not supported officially, although we let the possibility to do it. The main problem is that noises from the library are not made to be rendered at higher resolution than 4k, so in 8k (or higher) some of the textures may look strange.

Cheers,
Nicolas
Head of Product Management

Hi,

SD can be used without a noise node.
If it handles 16K bitmap correctly, it would be very helpful.
Currently SD does not seem to allow 16K.
I have set output size to 16384px but the bitmap node indicates it is 8192px.
And the appearance of the bitmap is incorrect.


As said above, sizes above 4kx4k are not supported, which means it may or may not work (most likely not) depending on your hardware (usually the amount of vram on your graphics card), how far above 4k you are trying to render, the complexity of your graph, whether you have other applications running at the same moment, etc.

There are very little graphics card available today with which you can render even a single 16kx16k bitmap with Designer. Just one of these weight 1GB (two if 16bpc), which means that just to blend two of those you would need 3GB of vram. Most reasonnably complex graph require at least half a dozen textures to be kept in memory at a given time to render.
Last Edit: May 18, 2015, 11:43:24 am

I understand.
Thank you for your reply.

As said above, sizes above 4kx4k are not supported, which means it may or may not work (most likely not) depending on your hardware (usually the amount of vram on your graphics card), how far above 4k you are trying to render, the complexity of your graph, whether you have other applications running at the same moment, etc.

There are very little graphics card available today with which you can render even a single 16kx16k bitmap with Designer. Just one of these weight 1GB (two if 16bpc), which means that just to blend two of those you would need 3GB of vram. Most reasonnably complex graph require at least half a dozen textures to be kept in memory at a given time to render.

Understood, but I wonder why we can't use software mode for the larger sizes? Being slower wouldn't be a problem. Software is limited to even smaller sizes than hardware mode. Only 2k.

Perhaps if the preview was limited to 2 or 4k so it can update quickly on the GPU, but at export time it made the full res texture in RAM rather than the graphics card memory.

Maybe that's not possible with the current architecture, but it would be extremely useful.

Being slower may not be a problem for you. It is for others. Keep in mind that the CPU engines are not used only inside Designer, but also in most Substance integrations in third party applications (game engines,  Max/Maya/Modo/C4D etc.). For those we want to keep loading time reasonable when there are several substances in the scene, and changes of parameters possible at somewhat interactive rates.
As for explaining why size is limited at all on the CPU engines, I'm sorry but I'll have to be technical ;)
Contrarily to the GPU engines, the current size limitation at 2K in CPU engines comes not from memory limitation but from optimisations we chose to do. We do some computations on image coordinates when rasterizing using fixed point arithmetics rather than floating point and in order to have enough subpixel precision we had a choice between :
  • limiting the max texture size to 2K
  • using 64 bits integers instead of 32b for storing fixed point coordinates, which in effect would make computation about twice slower
  • doing both and having different code for big and small textures, which would make the engine twice as big (this is possibly a problem when integrating in other software, particularly game engines on mobile platforms) and the amount of code twice as big (which increases the likeliness of bugs, and make it even longer to make changes later on)
The first option was the obvious choice at the time we designed the CPU engine since there weren't much use for 4K textures back then. We may revisit this choice one day but it won't happen overnight, because it's not as simple as changing a value somewhere and recompiling.
Last Edit: May 20, 2015, 07:11:05 pm

Thanks for the response Cyrille. I can understand the technical restrictions.

I do hope in the future you can find a way to offer an option for increasing the max size. I'm sure it would open up the possibilities for offline rendering significantly. Maybe open up an option for larger textures only within Designer so that people can bake massive maps offline if they need to, but not in the runtime version. Or perhaps have that as a render time option for the DCC app versions so they can load and render quick smaller maps for the viewport at load time, but bake huge maps before rendering.

Thanks again.

I seem to be at a loss. I've set the cooker to be able to export 8k textures, but how do I make it bake 8k textures. For example I tried to bake ambient occlusion but It won't let me go beyond 4k.

Along these same lines, if I bring in maps I baked in another application, at say 10K, would Substance be able to work with those? I'm running this on a Geforce Titan X with 12GB of RAM, so I can't imagine video card restrictions would be an issue here.

To make it clear why this is an issue, I have an object that has hundreds of parts in it. At 4K, there is no hope of having any decent resolution for any of my maps, because each part's UVs take up such a small portion of the map. However, if I make each part its own UV space, then there is no way to get any AO between the parts, or make any textures that react to their world position relative to each other. It would really be helpful in situations like this to make as large a map as I need, or at least be able to work with large maps from other programs.

Along these same lines, if I bring in maps I baked in another application, at say 10K, would Substance be able to work with those? I'm running this on a Geforce Titan X with 12GB of RAM, so I can't imagine video card restrictions would be an issue here.

To make it clear why this is an issue, I have an object that has hundreds of parts in it. At 4K, there is no hope of having any decent resolution for any of my maps, because each part's UVs take up such a small portion of the map. However, if I make each part its own UV space, then there is no way to get any AO between the parts, or make any textures that react to their world position relative to each other. It would really be helpful in situations like this to make as large a map as I need, or at least be able to work with large maps from other programs.
I seem to be at a loss. I've set the cooker to be able to export 8k textures, but how do I make it bake 8k textures. For example I tried to bake ambient occlusion but It won't let me go beyond 4k.

Guys, they've said multiple times that anything above 4k is NOT officially supported for multiple reasons just in this thread alone. And while I don't know their official stance, I am pretty sure they are targeting the game market and there's really no need for anything above 4k (at this moment anyway)