What's your thoughts about texture map size reduction (optimization etc)
![Past as Future](https://secure.gravatar.com/avatar/9962e49262ae128e3460342c6e7a66d1?&r=pg&s=100&d=https%3A%2F%2Fvanillicon.com%2F9962e49262ae128e3460342c6e7a66d1_100.png)
in The Commons
Would like to bring up a theme of texture maps size decrease e.g. for better optimization on weaker computers, or to save up some disk space.
I'm on mid2010s computer with 16 gb ram and 4 gb vram setup, so lately I find myself reducing to 50% certain things. Mostly from 4096x4096 to 2048x2048.
Also I'm primarly using 1080p monitor and don't render higher than e.g. 2560x1600. So I don't usually notice much quality downgrade unless I aim for extremely close-up shots.
So, I'd like to hear people opinion and experience on this all. Just curious.
Comments
Quite often the creator of whatever has not thought about the real world scale of the item and uses way too large textures on it, I mean, if an item is half an inch in diameter, is there any sense in slapping 4096x4096 textures and maps on it => 8192 pixels/inch, or for us europeans 322 pixels per millimeter... Good for microscopic studies, but wasting space and resources on any 'normal' scene.
For reference, I made some measurements in the past with G8F and 4096x4096px textures (1 inch is 25.4 millimeters / 1 millimeter is 0.0394 inches)
Torso, distance between points; 1481mm - 912.7mm = 568mm (2160px)
Torso at 4096x4096px = 0.26mm/px => 3.8px/mm
Head, distance between points; 1699 - 1576 = 123mm (1453px)
Head at 4096x4096px = 0.08mm/px => 11.8px/mm
The amount of RAM any image file takes when opened in any program, is calculated with "Width (px) x Height (px) x color depth (bits) / 8 (bits) / 1024^2 = MegaBytes". The file size of the image on disk does not matter.
If rendering in Iray, the default compression settings will reduce the memory footprint to about half, ie. if an image takes 100MB's of RAM, it will take about 50MB's of VRAM
Artists often have to include larger texture sizes because they can't tell how the product is going to be used.
It's perfecly understandable - what if someone wants to render an up-close portrait where resolution of small things do matter?
End users can always downscale textures if they don't need larger ones. It'd be worse if one had to upscale textures since upscaling to a passable quality is way harder.
And the artist has included the details, if I want to study the life and times of bacteria inside the figure's nose pore?
Your argument has a point to a degree, but how many pixels does one need for a real world distance of tenth of an inch, ten, hundred or is one thousand enough - And again, does the detailing support such accuracy?
Users can rescale textures by themselves. If they won't, that's not PA fault. It's better if products give more options than when they give less.
Scene Optimizer can even do this automatically for everything in the scene, without the user ever having to use any image editor.
Renders aren't always to real world scale. For example I do a lot of fairy renders. If the textures on small items are not optimised then the render will not look as good as I need it to be. I often use mushrooms scaled up to the size of genesis or other figures. I've also seen renders where there are huge faces used with additional characters in a surrealist fashion. What you are requesting would limit the use of the items. Not everyone does realistic renders.
Quite often the customer wants the high-res textures on by default. I know our customers did and several other PA's experienced the same requests. That is why most PA's offer the low-re texture maps and/or preset to load the low-res. It's very hard for a PA to know what the majority of their customers want. They can't base their decisions from the occasional shopper. The need to make their regulars happy. If they had more requests for the low-res they may do more of them. Sadly looks and quality sell products, so obviously the high-res are going to be used to promo the pack.
I see the use for big textures, but I also see the reason for some people not needing them and preferring to save harddisk space, and downsizing some 4k nail textures would then be a no-brainer.
Sadly, there doesn't seem to be any mechanic available in the installers (DIM etc) to differentiate between variations within a single product, and thus, give the user any option to install either the HD version or the Lower Density version, or even both. Installing both (if available) is the only option, meaning a user would have to manually delete any version he or she does not need.
In case there are only HD versions of the textures, it's on to the user to downsize them. Manually may take ages, but there do seem to be some tools that can batch-resize complete folders and sub-folders (I'm eying the RIOT one right now). Not sure yet how well those things work, I figure they might leave visible seams between mat zones, in which case some post-processing in Photoshop or GIMP might be required on renders.
Not that I have made a ton of purchases, but when I do I don't mind getting the biggest textures the PA wants to supply. It only takes a few seconds to run a scrpt that resizes the images down to 1024x1024 that I use before installing (I only do manual installions). Since I don't do Iray renders, or photo-realism, so I'll also convert the materials to Daz Defaults/Uber Surface and remove textures other than diffuse and specular.
Doing this configuration lets me load around 20 characters and an environment into a scene and render it in 3 Delight in less than a half hour.
IIRC, you should be able to set up an action in PS that will reduce the size of images...
Yeah, and on those cases, reducing the size of the textures doesn't even work as the original effective resolution is already as low as can be.
Some UV mappings are really weird. I understand when a piece of jewelry takes 4096x4096 but there's little gutter on the texture. But sometimes you get a thing like a strap running across the texture map and the rest of the texture is empty. It's not even filled with anything else, not shared with any other surface, it's just like 80% of the texture being empty gutter.
You can't sensibly downscale something like that.
The worse case I have seen (so far) was 5 image files (texture+maps) at 8192x8192x24bit, using 960MB's of memory for just one insignificant surface when only 20MB's would have been enough for exactly the same level of detail if the UV mapping was done better
I suspect part of that is down to square textures being a bit of a shibboleth across the 3D world (like power of 2 sizes)
And not understanding that the empty, unused space takes memory when opened in any program.
I'm not sure, for what little it's worth given the end result, that it's a matter of not understanding that but rather that people have received the message that square textures sized to power of 2 pixel dimensions are paramount, so the wasted space is thought of as a lesser evil.
Hmm, I always thought my machine would simply explode if using only primes for every possible DS numerical input? And star-shaped textures?
When "the saved image files are still so small" is offered as an excuse, it proves that people do not understand the amount of wasted memory due to empty/unused space. A single 4096x4096 image at 24bit color depth takes 48MB's of memory, irrespective of how much of the area is actually used on the model, add maps for metallicity, bump, normal, height (all at 24bit of course) and one is already looking at 240MB's of used memory for just one surface.
Long and thin surfaces like poles or straps still can be either put on the UV space with something else (i.e. if the belt comes for a dress probably it can be put on the same texture with the dress keeping the texel density between the both uniform), or failing that it can be cut into enough UV islands to be stuffed into a square UV space with less gutter.
Since this day nearly all textures are 3d-painted or baked from sculpts, complicated unwraps aren't much of a limitation anymore. It used to be necessary when textures were painted in 2d, to not cut the unwraps into too many islands (and then having "fun" trying to figure what goes where when painting).
That is what Richard was referring to. The UV space is not square, it has "height" from zero to one (full height) and "width" from zero to one (full width), but the two are not related to each other. A texture image can be 64 pixels high and 4096 pixels wide.
Square texture images are mostly convenience for texture painting.
Whichever size is picked, about 80% of the texture should not be empty. Things can be cut and packed better. You have an apron with a long belt, you can always do things like 2048 x 4096 and use roughly one half of the space for the apron proper and the other for the belt/tie cut and packed so most of the texture is not gutter.
Because gutter doesn't not have much to do with required image sizes. Mostly it's about shortcuts taken when unwrapping the thing. It's much faster to mark the seams, hit the unwrap, then maybe correct stretching and then call it a day.
I agree, after I stumbled on this problem the first time, I have been looking into the UV mapping of products that "feel" too heavy for what's in them and found it not that unusual to have 50-60% of the area on the texture/map images unused and wasting memory.
Sometimes one can see that the UV mapping has originally been made somewhat efficient, but then each island has been given it's own image file, wasting huge areas of the image that are filled with garbage (by Substance Painter I'm told), making it just about impossible to fix the problem by collecting the islands back to one image file (can not accurately isolate the 'real' content amongst the garbage)
This striped mess on the textures done with 3d painting apps is to avoid bleeds on UV seams. It's simply extending pixels on seams. You need to lay a UV template on top and things become much easier to read because it never bleeds into another island.
Yeah, but when the number of image files needing to be manually fixed exceeds a thousand, one quickly finds oneself forgetting the idea![wink wink](https://www.daz3d.com/forums/plugins/ckeditor/js/ckeditor/plugins/smiley/images/wink_smile.png)
When you have that sstarp prop and that prop only take up 10% of the map what are we suppose to use to fill in that empty space?
Don't understand what you mean. The UV space has no dimensions, one can scale the island up to fill most the area