The goal here is to compare 3Delight's OSL rendering core with other renderers that use C++ for shading (namely Arnold and RenderMan RIS). Since all renderers are quite different, we will try to get to a most common denominator, in terms of setup, so to be able to compare apples to apples. We want to know : can we go as fast as highly optimized C++ ray-tracer . ?
In this particular case we will be constructing an artificial test scene that emulates simulates foliage. Rendering foliage is a good stress test for many reasons:
- Many shader evaluations, including for transmission rays. No "opaque" object tricks are possible because leaves are usually modelled using cutouts. Shader evaluation efficiency is important.
- Many short ray probes necessitate a good integration and coordination between shading system and space partitioner.
- Any bottlenecks in the ray tracer tend to be amplified and adversely affect performance.
The Scene
The scene is designed in such a way as to put all the contenders in an even playing field and get meaningful performance numbers. For example:
- We will just use diffuse reflectors. We don't want complexe BRDFs sampling to get in the way. This test is not about this.
- We will disable any adaptive sampling so to make sure we have very close ray-counts.
- We will use only one diffuse bounce. This will circumvent some complexe variables from the equation (Russian roulettes and other tricks of the trade).
- The scene is easy to load, to setup and to render. It is available for all tested renderers.
- All renders are done in Maya.
...
The scene looks quite ugly in the
...
...
viewport: just a large collection of rectangles generated using PaintEffects.
Squares are transformed into circles using a cutout. Scene is lit by two large area lights from each side.
The cutout is done using a Maya Ramp. In Arnold it is connected to "opacity", in RenderMan to "presence" and in 3Delight to "transparency" !
(3Delight shown here)
The
...
Renderers
Arnold | RenderMan | 3Delight OSL | |
---|---|---|---|
Version |
| ||
Technology | Unidirectional path tracer | Using unidirectional path tracer. Other options are available but not useful for this test. | Unidirectional path tracer |
Shaders | C++ | C++ | OSL |
The Setup
Arnold | RenderMan | 3Delight OSL | |
---|---|---|---|
Screent Shot |
| ||
Remarks |
...
Min Samples = Max Samples | Only shading samples to set for sampling BRDFs. 3Delight OSL takes care of the rest. | ||
The Results
3Delight OSL | Arnold | RenderMan | |||
---|---|---|---|---|---|
Image | 3Delight | 9||||
Total Number of rays | 22.7 Millions | 20 Millions | 23.1 | ||
Time | 66 seconds | 185 seconds | |||
Comparison | 1 |
Resources