Daz Is there any reason to use 4K textures if I always render in 1080p?

Sakrilas

Just Another Member
Game Developer
Oct 26, 2017
363
2,654
As the title states, is there any reason for me to keep any map in my scenes with a resolution of 4K or greater, when the target resolution for my renders is always 1080p?

I have started to pay more attention to the textures in some assets that I use for my renders, a lot of them have textures with resolution of 4K and some even 8K. Am I just wasting VRAM if I keep those textures intact? Or is there some value in keeping assets with a higher resolution than the target output of the render?

Tools like make it a cake walk to reduce the size of those maps, but I don't want to get any significant/visible loss of quality.

I would appreciate the feedback from anyone with some experience with rendering. Thanks!
 

Temploz

New Member
Sep 7, 2020
2
1
Generally speaking, important objects in your scene should use higher resolution textures while background objects can use lower resolution textures. Even though your scene is only rendered out at 1920x1080, the objects themselves can use 4K or larger textures to show more details more clearly in the final render. So while a book in the background can be a 1K texture (or even atlased with other textures) your main characters using 4K or 8K maps is fine. You may be able to get away with lower res textures, but it’s not really a waste for your important objects in the scene to use 4K.
 
  • Like
Reactions: Sakrilas

Sakrilas

Just Another Member
Game Developer
Oct 26, 2017
363
2,654
Generally speaking, important objects in your scene should use higher resolution textures while background objects can use lower resolution textures. Even though your scene is only rendered out at 1920x1080, the objects themselves can use 4K or larger textures to show more details more clearly in the final render. So while a book in the background can be a 1K texture (or even atlased with other textures) your main characters using 4K or 8K maps is fine. You may be able to get away with lower res textures, but it’s not really a waste for your important objects in the scene to use 4K.
Higher definition on the foreground has definitely been a thing I was keeping in mind. But I wasn't sure if having a foreground object with a resolution higher than the render output itself would be any different than having it match the resolution.

I'll be honest, I still don't get how I would get more details from a 4K texture rendered in 1080p when compared to a 1080p texture rendered in 1080p. It seems so counter intuitive. I would assume the result would still be around the same, which is a 1080p amount of detail in the image. I would appreciate more clarification, if possible.

Thanks for the reply. If that's what the community considers best practice, I'll keep doing it. After all, I know I'm no expert. Maybe one day this will make more sense to me.
 
Last edited:

probably_dave

Member
Jun 3, 2017
133
363
As mentioned earlier, foreground objects should be a higher resolution. This is because of two reasons:
  • The foreground objects are likely to be the focus of the player
  • They take up more space in the render
The key thing to remember on textures is that the textures are wrapped around the object. That means you're only seeing part of the texture in the renders and these are usually scaled. One pixel in your texture is not representing one pixel in your render, usually, it's significantly more for objects in the foreground.

If we take the below image:
1625550531111.png

The square on her face represent the middle 2048 pixels of a 4k texture:
1625550575049.png

Now, in the 1080p render, this square is taking up around 1 third of the width and half the height of the render (let's say, 640x540) however, we are cutting out about a 3rd of the left portion of the square (her right check) meaning what's shown in the square is about 1365x2048.

If this was a 2k texture, this would make the square 682x1024 or 341x512 for a 1k texture.
As the 1k measurements are smaller than amount shown in the render, each pixel in the 1k render will need to be enlarged.

For the 2k texture, it looks like we're doing fine for the height (270 vs 540) but for the width it's relatively close (482 vs 640). However, as with the full texture, this is not evenly spread.
From the tip of the nose to the brow is taking up nearly half the height in the render (say 640x270) but only makes up a third of the square in the texture (say, 680x340). We're now getting very close to a 1-to-1 relationship between the render and the texture for this portion of the render.

If we focus in more, and this time look at the UV map for this area:
1625552855048.png
and compare against the geometry of the model:
1625552959239.png

Notice how for the nose, the grid is tightly compact for the texture while for the render, the grid is much more spread. As we're approaching a 1-to-1 pixel mapping for this area, it means the 1 pixel in the texture will represent multiple pixels in the render in this area.

This is why higher resolution textures are used. Although for most of the model it's not needed, when it is needed (like for the nose) the detail is there in the texture to minimize the scaling. 4K textures tend to give the right balance for most 1080p shots for resource needs and detail with minimal up-scaling.
Of course, if you zoom in extremely to specific areas detail will be lost even with 4k, but this resolution does tend to give the right balance for most shots.
 

Sakrilas

Just Another Member
Game Developer
Oct 26, 2017
363
2,654
As mentioned earlier, foreground objects should be a higher resolution. This is because of two reasons:
  • The foreground objects are likely to be the focus of the player
  • They take up more space in the render
The key thing to remember on textures is that the textures are wrapped around the object. That means you're only seeing part of the texture in the renders and these are usually scaled. One pixel in your texture is not representing one pixel in your render, usually, it's significantly more for objects in the foreground.

If we take the below image:
View attachment 1283356

The square on her face represent the middle 2048 pixels of a 4k texture:
View attachment 1283357

Now, in the 1080p render, this square is taking up around 1 third of the width and half the height of the render (let's say, 640x540) however, we are cutting out about a 3rd of the left portion of the square (her right check) meaning what's shown in the square is about 1365x2048.

If this was a 2k texture, this would make the square 682x1024 or 341x512 for a 1k texture.
As the 1k measurements are smaller than amount shown in the render, each pixel in the 1k render will need to be enlarged.

For the 2k texture, it looks like we're doing fine for the height (270 vs 540) but for the width it's relatively close (482 vs 640). However, as with the full texture, this is not evenly spread.
From the tip of the nose to the brow is taking up nearly half the height in the render (say 640x270) but only makes up a third of the square in the texture (say, 680x340). We're now getting very close to a 1-to-1 relationship between the render and the texture for this portion of the render.

If we focus in more, and this time look at the UV map for this area:
View attachment 1283400
and compare against the geometry of the model:
View attachment 1283401

Notice how for the nose, the grid is tightly compact for the texture while for the render, the grid is much more spread. As we're approaching a 1-to-1 pixel mapping for this area, it means the 1 pixel in the texture will represent multiple pixels in the render in this area.

This is why higher resolution textures are used. Although for most of the model it's not needed, when it is needed (like for the nose) the detail is there in the texture to minimize the scaling. 4K textures tend to give the right balance for most 1080p shots for resource needs and detail with minimal up-scaling.
Of course, if you zoom in extremely to specific areas detail will be lost even with 4k, but this resolution does tend to give the right balance for most shots.
Thank you for the neat explanation, Dave!

This makes a lot of sense now. Thanks!
 

Temploz

New Member
Sep 7, 2020
2
1
Compression can cause artifacts, particularly in complex textures or areas with large color contrast (depending on the compression method used). JPG is the textbook example of high compression to reduce filesize resulting in notable artifacting. Game developers can get away with PNG files but TGA files are usually used for higher fidelity visuals, especially when rendering. Unless you have file size concerns (ie the texture file being included in a game's assets) uncompressed textures are almost always preferable as they will result in cleaner visuals.
 

Deleted member 1121028

Well-Known Member
Dec 28, 2018
1,716
3,308
Compression can cause artifacts, particularly in complex textures or areas with large color contrast (depending on the compression method used). JPG is the textbook example of high compression to reduce filesize resulting in notable artifacting. Game developers can get away with PNG files but TGA files are usually used for higher fidelity visuals, especially when rendering. Unless you have file size concerns (ie the texture file being included in a game's assets) uncompressed textures are almost always preferable as they will result in cleaner visuals.
I don't remember how much medium compression thresold is by default (something like 1024 or 2048 iirc), making 4k textures compressed by default. Reading Daz forum it's more likely using (so, lossy). I guess it may increase color bleeding/blurr in 'nasty' area. That being said it should be fine for 99% of any render.
 
  • Like
Reactions: Temploz

Rich

Old Fart
Modder
Donor
Respected User
Game Developer
Jun 25, 2017
2,566
7,382
Of course, like anything, higher resolution textures can be taken to extremes. I recently ran across a Daz shirt in which the PA had used a 4K texture for the buttons! C'mon guy!

Compression can cause artifacts, particularly in complex textures or areas with large color contrast (depending on the compression method used).
Quite true. When using Scene Optimizer to reduce the size of textures, one thing I would recommend is to make sure you select the option to smooth the downsampled texture. Otherwise, it does a "strict subsample," and this can generate VERY noticeable artifacts in the reduced-size texture in certain cases. It also means that you sometimes need to fiddle with other things. For example, downsizing a bump map can result in odd effects, so you may then need to dial down the strength of the bump map on the surface to keep those effects from showing.

The other thing you have to consider when down-sampling textures is how big an area the texture is applied across. For that button? Downsample the heck out of it. For that one texture that's the entire side of the school? There you're probably going to want the resolution, because you're closer to that 1:1 that probably_dave was talking about. Not due to proximity per se, but because the texture was already spread over a much larger area of your model, and so an individual pixel in the texture was "bigger on screen."

Basically, cramming lots of content into small VRAM is as much art as science. :)
 
  • Like
Reactions: osanaiko

Deleted member 1121028

Well-Known Member
Dec 28, 2018
1,716
3,308
Of course, like anything, higher resolution textures can be taken to extremes. [...] cramming lots of content into small VRAM is as much art as science.
\o/
Skin wise, close up condition, from various test way back with a 1060 and 3Go Vram :
-diffuse/SSS maps can be resized without *much* problems (just don't go to far)
-Bump/Roughness ones are quite critical, especially Bump (less a problem with PBRSkin/Micro tiles now I guess), they do a lot for credible skin 'plasticity'.
-Refrain from resizing Normals, like ever (I think even Iray compression leave them alone for a good reason).

Somewhat I miss optimizing maps :unsure:
 
  • Like
Reactions: Rich

shark_inna_hat

Active Member
Game Developer
Dec 25, 2018
705
2,765
Just bustin' some myths, feel free to ignore.

PNG vs TGA - the later offers no quality benefits, but it is a bit faster to load and write, even if it's just say 0.5 seconds. When you're rendering a 5 minute animation -that's 24 frames x 60 seconds x 5 minutes = 7200, if using tga is 0.5 seconds faster, you just shaved 1 hour of rendering time.

Using S3TC (dds/dxt/bc) compression for offline rendering is just stupid. Don't do it. It's a lossy, block compression method - great for realtime 3D because gpu texture units can decompress it on-the-fly at (virtually) no cost (also the .dds file format lets you store precomputed mipmaps and that can come in handy). Even when using a gpu renderer the driver can compress all your textures when sending them to vram.

You can resize normal maps, no problem, just remember to re-normalize them. Bump/height maps can be more tricky - people used to add a bit of 1 pixel sized noise/dithering to bump maps to make surfaces look mate or rough - resizing textures like that will remove most if not all of that noise. Solution for that is easy - use a PBR workflow.
 

Deleted member 1121028

Well-Known Member
Dec 28, 2018
1,716
3,308
Just bustin' some myths, feel free to ignore.

PNG vs TGA - the later offers no quality benefits, but it is a bit faster to load and write, even if it's just say 0.5 seconds. When you're rendering a 5 minute animation -that's 24 frames x 60 seconds x 5 minutes = 7200, if using tga is 0.5 seconds faster, you just shaved 1 hour of rendering time.

Using S3TC (dds/dxt/bc) compression for offline rendering is just stupid. Don't do it. It's a lossy, block compression method - great for realtime 3D because gpu texture units can decompress it on-the-fly at (virtually) no cost (also the .dds file format lets you store precomputed mipmaps and that can come in handy). Even when using a gpu renderer the driver can compress all your textures when sending them to vram.

You can resize normal maps, no problem, just remember to re-normalize them. Bump/height maps can be more tricky - people used to add a bit of 1 pixel sized noise/dithering to bump maps to make surfaces look mate or rough - resizing textures like that will remove most if not all of that noise. Solution for that is easy - use a PBR workflow.
I won't but also feel free to ignore.
TGA is barely used for Iray/free PBR assets (at least not really common outside vidya games). It totally make sense to compress 4k/8k texture with S3TC in term of gain/benefit (what Iray does before sending to Vram). Lower thresold is more concerning for small texture but should be fine with default setting. Resizing normals (on the fly) is the best way to create unwanted artifacts. Most textures already use a PBR workflow.

edited for clarity o/
 
Last edited:

Deleted member 167032

Alternate Existence
Donor
Game Developer
Aug 16, 2017
2,719
4,943
Render in what is fast enough for you and what looks good for you. So render / setup as per your pc hardware specs.
 

Deleted member 1121028

Well-Known Member
Dec 28, 2018
1,716
3,308
Render in what is fast enough for you and what looks good for you. So render / setup as per your pc hardware specs.
Do you sincerly think that push outside S3TC compression gonna achieve that masterpiece?
I've got terrible news tho lol (or a bridge to sell).
 

Deleted member 167032

Alternate Existence
Donor
Game Developer
Aug 16, 2017
2,719
4,943
I was answering the OP not what you were discussing. Apologies for miscommunication.

Do you sincerly think that push outside S3TC compression gonna achieve that masterpiece?
I've got terrible news tho lol (or a bridge to sell).
 

Deleted member 1121028

Well-Known Member
Dec 28, 2018
1,716
3,308
NO worries....
Ive been down the 4K resolution vs 1920 rendering road etc... Using opitimizers which are shit imo. Why I "nonchalantly" suggest to the OP to setup his renders, rendering at a speed he is happy with and quality he's happy with.
Might as well write heresy again :WeSmart:.

But yeah 'optmizers' are quite shit, especially for extra large/small textures imho. I'll put over-use of denoisers in that category too. That being said, back in old school Daz/card you have no other choices, and doing everything by hand can be quite painful (yeah that particular kitchen with 1476 surfaces :oops:).

And despite popular opinion to hammer it, Iray default setting are quite well balanced if you look into it in an objective way.
 

Deleted member 167032

Alternate Existence
Donor
Game Developer
Aug 16, 2017
2,719
4,943
Well said...

RTP i had only a 1060 3gb GPU... I tried optimizer, deleting assets in each scene i did not have in the camera view etc... Play with Render settings, did test etc... and I believe i got some fairly good looking renders for a game in 2018. Now a days as you said, denoizer and the Intel/Nvidia 3rd party denoiser applications make it easier and of course 3090 cards etc...

Too many devs today have fairly "good" looking renders without having to look under DAZ's hood to make it look good. Pushing one's system/settings is best way to develop as a dev i feel. Why too many games now have that "potato" feel to the renders and some renders you can see brute GPU force ( 2 x 3090 cards) was used to get it to look amazing.

Might as well write heresy again :WeSmart:.

But yeah 'optmizers' are quite shit, especially for extra large/small textures imho. I'll put over-use of denoisers in that category too. That being said, back in old school Daz/card you have no other choices, and doing everything by hand can be quite painful (yeah that particular kitchen with 1476 surfaces :oops:).

And despite popular opinion to hammer it, Iray default setting are quite well balanced if you look into it in an objective way.