2021-04-20 at 3:16 pm #40347jhfugateParticipant
I’m exploring optimization options, performance benchmarks, and quality compromises for converting files from high quality production render files to something WebGL friendly/gltf 2.0 compatible. Part of that process is testing texture optimizations, and I’ve run into some results I don’t understand while testing png vs jpeg images for each map type – as shown in the images below there is a significant difference in the appearance of the roughness on the metal faucet, which arises from just converting the roughness map from a png to a jpeg. I’ve tried to be very methodical in my testing, so all other variables have been constrained to my knowledge.
I am working in 3DS Max 2020, using a licensed version of the Verge 3.5 plugin (it has to stay at v3.5 at the moment to stay compatible with our internal development tools).
The original roughness map for the chrome faucet is an 8 bit, grayscale png set to a solid dark grey color (HSB 0, 0, 21). The map size is currently 1k (which can obviously be reduced, but I’m trying to test one optimization at a time on the source files).
The shader was created in 3DS Max 2020, so the roughness map image defaulted to the Linear override of 1.0 on import (and I have double checked, and tested without just in case).
There are no other changes to the bitmap node (i.e. color correction, noise, etc), it is simply a grey map plugged default into the roughness channel of a physical material within 3DS Max 2020.
I opened the map in photoshop, confirmed it was 8 bit and grayscale, and saved as jpeg with max quality (to avoid artefacting during initial tests). I opened both the jpeg and png maps in photoshop and compared them – both 8 bit, grayscale, same HSB color. Within 3DS Max I then duplicated the bitmap node being used by the existing roughness map connected to the shader (just in case there was some setting being used that I would miss), imported the jpeg file in the same way (using the default override 1.0 for linear colorspace), and swapped the png map node with the jpeg map node in the roughness channel of the physical shader.
At every step and in every preview window and settings the maps appear identical, and in the Max viewport their is no change. But when I use the Verge 3D Sneak Peak and when I publish a Verge app the surface roughness on the faucet is very obviously different.
Is there something obvious I’m missing? So far I haven’t been able to find any documentation or recommendations regarding this specific phenomenon on these forums, the Verge manual, or anywhere else on the internet.
Any help would be appreciated, just trying to better understand what is happening under the hood.
Attachments:You must be logged in to view attached files.2021-04-21 at 11:00 am #40361Ivan LyubovnikovStaff
Can you provide a test file with both textures to reproduce the issue?
Co-founder and lead developer at Soft8Soft.
- You must be logged in to reply to this topic.