Forum: Carrara


Subject: Octane Render Plugin for Carrara

DustRider opened this issue on Oct 27, 2013 · 60 posts


dr_bernie posted Thu, 14 November 2013 at 3:12 PM

I would like to add a few points to my posts above. As I mentioned before, this is a level-headed engineering evaluation of different technologies, not blind fanboyism.

First, Octane and Embree are not competitors, for one good reason: Embree is not a renderer, it's a set of fast raytracing routines that reside at the heart of every renderer.

Every renderer has raytracing routines at its core. They calculate how light interact with the scene. VRay uses raytracing routines, so do Octane, Maxwell, Lux, C4D, Lightwave, Modo or whatever. In Carrara's Render Room the first option is the  'Full Raytracing' checkbox. When you check it, you tell Carrara to use raytracing routines to perform its calculations.

The maths behind these calculations are complex, very complex (here and here). They involve billions of operations. The faster and more accurately these operations are performed, the faster and more accurate the renderer will be.

If you think of a renderer as a car, then the raytracing routines are the car's engine.

The engine is what makes a car go fast, the engine is, to a great extent, what defines the car's ride quality. Same with the raytracing routines. They are what make a renderer go fast, they are what define, to a great extent, a renderer picture quality.

Embree is a set of fast raytracing routines that uses Intel (or Intel compatible) CPU's built-in math instructions to achieve the highest speed. A renderer that uses Embree, like Vray or C4D R15 or Simlab and probably Modo very soon, is noticeably faster than a renderer that doesn't.

Carrara's raytracing routines are old, very old. They probably have not changed since the time of RDS 3.0.

Why do I think they have not changed since the days of RDS 3.0? Because, as I said above, raytracing routines are complex. They are too complex for a company like Daz to write. Writing raytracing routines is not within just anybody's reach. It's in the realm of very experienced math/physics PhD's. It's rocket science, literally. For this reason it is very unlikely that Daz had the expertise to improve the original raytracing code developed by Eovia.

The age of raytracing routines in Carrara's renderer is one reason why it is so slow and of such amateurish quality. They were developed by Eovia in a time when CPU's did not have buit-in advanced math instructions, therefore Eovia's enginners used slower routines and had to copromise over the final output quality, to get reasonable performances. They did an excellent job for that time, but now there are much better and much faster raytracing routines like Embree, and it's time for Carrara to use them.

I don't believe Embree can be incorporated in Carrara's renderer as a plugin

. Raytracing routines are too deep inside the renderer to be accessible via SDK. But someone like Fenric is a lot more qualified than me to express an opinion on this.

Regardless, it is not just an Embree issue. It is also the issue of the inaccurate way Carrara processes light, which, I believe, it does only over 8 bits per channel, for a total of 32 bits over 4 RGBA channels.

To get accurate lighting, one must ideally process light over 32 bits per channel, i.e. a total of 128 bits for RGBA. That is what a world-class renderer like Shade does, and it shows in the final results.

For this reason, to implement Embree inside Carrara, and correct its lighting inaccuracies, one must have access to Carrara's source code. You can't just write a plugin, and call it a day.

In other word it's only Daz who can do it. Unless Daz is open-minded enough to make Carrara's source code available to someone like,say Fenric, to incorporate Embree in it and modify the processing of light so it's done over 32 bits per channel, not just 8 bits..

OK, enough said for one post. In my next 2 posts I will look at Yafaray (here) and 3Delight (here) as 2 other rendering possibilities for Carrara. Yafaray has been Blender's default renderer for many years and is a highly regarded open-source renderer. 3Delight is an industrial strength renderer that has been used to render numerous Hollywood blockbuster movies (here). 3Delight is also Daz Studio's native renderer.

After having looked at all the possibilities, I will make a final cost versus benefit for each solution to find-out which one makes more sense for Carrara.