dragonCASTjosh wrote:Pre-filtered IBL
This may be difficult to see the difference but take my word for it performance is massively increased. likely not viable for mobile due to file size limits.
Why can't the pre-filtering be done at scene load time? It doesn't need to be super accurate. Heck you could almost just generate mip maps from the environment map, put on trilinear filtering, and call it a day. You could add a 1 pixel pre-pass blur to each mip to hide the pixels, or do a quick 3-tap blur filter in the final shader. Then mix the lower mips into the higher ones to better match a wide specular lobe.
dragonCASTjosh wrote:the simplest way to solve the shader issue is just write some preprocessor change the syntax of one of the languages but this is likely not a good long term solution. Vulkans spirv may be the best solution
I've seen the preprocessor solution used in other code, and I think it works pretty well.