We create a synthetic dataset of over 9,000 high-quality images of 9 transparent objects. For each image, we also render depth, surface normals and instance masks.
Examples of our synthetic dataset
This Figure shows the simulator environment used in our paper. It includes a camera, a plane with specific texture, several glasses, and a HDRI backgound.
Rendered Image
LuxCoreRender Engine
Cycles Engine in Blender 2.9.1
Eevee Engine
Realistic Glass shader with Cycles Engine
We can observe that the LuxCoreRender Engine can render the unique visual properties of transparent object such as caustics and refraction. Because the Cycles Render Engine does not use bidirectional rendering. This means it is not possible to get physically accurate caustics or dispersion with Cycles Engine, for example the shadows of those transparent objects are still very similar to opaque objects. As for the Eevee Engine, it has the fastest speed for rendering image, but shows bad realistic performance. (We not only change the render engine, but also change the render code to be suitable for LuxCoreRender Engine, because it uses some different API from Cycles. )
The last realistic glass shader is bought from Blender Market (https://blendermarket.com/products/realistic-glass-shader). Although it can generate some fake caustics, but the shader building is very complex, as shown in the following Figure.
Realistic Glass Shader in Cycles
Objects in our dataset. In both synthetic dataset (the first row) and real-world dataset (the second row), we have 9 objects, from left to right: large disposable cup, highball cup, rectangular cup, vial, jar, mug, small disposable cup, champagne cup and tumble cup.