Hey! Comparison:I've always used PNG as the normal map format in my assets. I always thought that most of the artifacts and banding came from using 8bit maps rather than 16bit.
Recently when I baked 16bit PNG and it still had banding and such, I tried 16bit TIF format and I was really pleasantly surprised.What's really bugging me is that PNG is lossless, so why would it act like this? Also if I resave the PNG as TIF the artifacts disappear again. The comparison is done in Marmoset Toolbag.
Thanks!
mod edit: deleted cute colours.
Replies
TGA and TIF can be saved with no compression they are lossless, so you get a pixel perfect image for the engine to operate on.
PNG is lossy, not lossless. It compresses and you lose detail in favor of a few bytes. The handful of mb's you save aren't worth the headache and loss of data.
Also PNG isn't a singular format, there are a few different ways to build and compress a PNG and it can be a nightmare to straighten out if the apps are building, interpreting, compressing and encoding them in different ways.
The way different apps handle PNG alpha is enough to send most people screaming for a more stable format. The way 3dsmax and Maya save PNGs aren't the same way Photoshop saves them. You can have a pipeline working just fine from 3dsmax/Maya to your engine but if you open and save it your png in PS, it could bork everything.
Stick to the rock solid formats, stay away from compression, you have enough headaches to worry about =P
Of course if you check reduce file format on save you're in trouble... but PNG is capable of lossless; it's not inherently a lossy format.
(edit: see below)
The normal map is definitely baked well, because when I resave the PNG file as TIF it shows correctly again, I think you might be right about marmoset not loading the full bit depth, but why would this happen?