How to model a liquid in glass with Corona Renderer?


The correct way to model a liquid in glass is to duplicate part of the container's inside, cap it, and make it slightly bigger than the inside of the container. In Corona Renderer, this is the correct workflow for such scenes and there is no need to use multi/sub materials like in some other renderers. 


Another thing to remember is that starting from Corona Renderer 4, geometry normals are considered when rendering refraction and other volumetric effects. This means that both the container and the liquid need to have their normals set up correctly (the normals must not be flipped when the objects are viewed directly).



Examples


a) Liquid mesh perfectly overlaps with the faces of the inside of the container mesh - this produces wrong results and artifacts are visible (faceting, triangles).






b) Liquid mesh is slightly bigger than the inside of container mesh - this is the correct method.






c) Liquid mesh is slightly smaller than the inside of the container - this produces wrong results.







d) Flipped normals. In this example the normals of the liquid mesh are flipped - this produces incorrect results (in this case absorption incorrectly becomes extremely strong). 





Other articles of interest: My SSS objects are faceted! (3ds Max | C4D)