What is 2.5D Displacement?
The new release of Corona features an improved displacement method, called 2.5D Displacement.
It claims to be less memory hungry and it can be used on very large surfaces without affecting too much the performances, contrary to the old 3D Displacement.
Settings
When using the 2.5D Displacement you need to use a lower screen pixel size in the property of the displacement in order to reach the same quality level of 3D displacement.
Quality VS Memory used
Here are some tests we made to see the difference.
3D Displacement:
2px screen size, RAM peak 2.7GB, RAM used 1.7GB
2.5D Displacement:
2px screen size, RAM peak 0.95GB, RAM used 0.8GB
3D Displacement:
1px screen size, RAM peak 8.9GB, RAM used 4.6GB
2.5D Displacement:
1px screen size, RAM peak 1.3GB, RAM used 1.2GB
More tests
3D Displacement:
1px screen size, RAM peak 7.7GB, RAM used 4.3GB
2.5D Displacement:
0.5px screen size, RAM peak 2.8GB, RAM used 2.6GB
Optimizations
One thing to consider is that the new displacement can introduce some artifacts on curved surfaces if the mesh is not subdivided enough.
Box surface without tessellation
Artifacts on chamfer
Box surface with tessellation
No artifacts on chamfer
If you want to save even more RAM while rendering, you can use a higher pixel size for displacement and use a Normal Map on your shader that will bring the extra details.
2.5D Displacement: without normal map
3px screen size, RAM peak 1.5GB, RAM used 1.4GB
2.5D Displacement: with normal map
3px screen size, RAM peak 1.6GB, RAM used 1.4GB
2.5D Displacement: without normal map
0.5px screen size, RAM peak 2.8GB, RAM used 2.6GB
2.5D Displacement: with normal map
3px screen size, RAM peak 1.6GB, RAM used 1.4GB
As you can see from the previous test the amount of memory that you can save is huge when using 2.5D displacement, and the quality is still very high.
Are you interested in learning more about Corona Renderer? Then, join us in our next course from February 10th to 14th, 2020. Go check the schedule and book your seat.