Hello, I’m new. I recently found out about the texture bombing function, and my question is, is it worth using this function in a roughness texture, or any other texture that is not base color or normal?
texture bombing is a technique to avoid obvious tiling / repetition of a texture. Generally it’s kind of hard to see repetition in a roughness texture unless there is alot of contrast in your roughness texture. That being said you can absolutely use it with the roughness, you’ll just have to judge for yourself if the result is worth it.
Hi @JAGIELONIA19!
Hmm, I would say yes and no. I think it depends on a few different factors.
First of all, it’s obviously best visually to have ORM maps that match your base color and normal. That being said, if you are using this method, MAKE SURE you are using ORM maps, as doing this for a rough, metallic, and AO separately is a huge waste of computing power.
Now, where you can probably get away with not using it, if your ORM in this case is not particularly visible and could be replaced with simple values, or the mismatch in tiling does not look weird.
Texture bombing is obviously an expensive function, as it has to resample your texture multiple times, but a lot of the actual math is shared. I would evaluate your current shader complexity with your target platform, with the visual difference and how much more complex adding in the roughness will make your shader. So I would say in general, using it for a landscape material is fine since it’s such an important feature. If your landscape material is already very complex and you can’t simplify it, maybe don’t add texture bombing in areas that are almost completely covered in grass.
In general, I think this will be more of a personal call that you need to make based on your knowledge of the situation. A tool that might help though is using a quality switch to keep the extra instructions out of your low-end setups.
If you are looking for best-lighting, and no discontinuities, you wouldn’t want to avoid using texture bombing on your roughness, etc if you are using it on your basecolor as well. Those textures all line up to provide the best-quality image. Unless you are using a solid # for your roughness, etc, TBing basecolor but not roughness et-al would cause some visual artifacts.
Ideally, you want some UV math you can share between multiple samplers vs having to run multiple-samples across basecolor, roughness, etc. This would recycle the math of the UVs across multiple endpoints and amortize the overall cost.
At the very least be packing your greyscale textures into a single texture to save on samplers/samples.
One thing you CAN do to claw-back some performance, whatever you end up doing is look at using say, full-scale basecolor but a mipped-down roughness, gloss/specular, normal, etc. Instead of 4k/2k for all the textures use a 4k for basecolor + roughness (RGBA) (roughness is most important besides color, IMHO) and a 2k Gloss/Spec+2channel normal+ AO, or even 1k. At least you can save on memory for less-important information.