I am currently working on a VR project and am using a camera set up with HDR and MSAA. For some reason, any emissive material produces aliasing around the edges:
Is this a known thing and is there a fix? Thanks!
I am currently working on a VR project and am using a camera set up with HDR and MSAA. For some reason, any emissive material produces aliasing around the edges:
Is this a known thing and is there a fix? Thanks!
This is technically correct, but I agree not the preferred way. I don’t think you can really change anything about it with any ease.
The thing is that the MSAA is resolved first and then the HDR to LDR conversion is applied. So if one subpixel is very bright, it has the potential to pull the whole pixel up.
The preferred way (in my opinion) is to do the HDR to LDR conversion first for all MSAA samples and then resolve the MSAA samples. The downside is performance and the needed support to access all MSAA samples in the HDR to LDR shader. The upside is a more pleasing image.
You can read a little more on it here.
I wouldn’t say it’s technically correct, I would say this is the expected behavior when using HDR with MSAA naively, as in what the GPU will give you if you set a render texture to use both and use the default resolver. I’m quite dismayed that this is what got shipped since the rather long threads on the topic on the forum (which the devs responded to) talked extensively about this exact issue as being a problem with the tools we already had available to us. It seems their implementation is no better, so the hack workarounds will have to continue to be used, at least until Scriptable Render Loop gets released with Texture2DMS support.
You mentioned some kind of hack workaround? Do you know what that is?
Well, if you were to compare a pixel to a photoreceptor cell in the human eye or a camera it’s technically correct. The light is accumulated in a linear way and then tonemapped. But I agree there is not much reason to do this in the HDR+MSAA situation. I would always go for the other way around.