
Final Final update for this render. Switched my intersection to Moller-Trumbore and updated my normal map function to pick a third, additional axis for my normal coordinate frame, if the first two are too close to the normal direction. Also got rid of the artifacts.

Done tweaking it for now. Probably

Fixed some normal map bias issues and added a plane.

I got normal maps to work! The beer is made up of 3 separate meshes with different normal maps. I also added an option to the xml to skip shadows, which is why we dont get a shadow on the foam. I havent slept in days.

UV calculations for all shapes, no filtering yet