BlenderDiplom interviews Brecht van Lommel, the main developer behind Cycles, Blender's new render engine with realtime-preview. Find out why he started Cycles, what is planned for the future and why Cycles supports CPU, OpenCL and CUDA.
BD: Your Brecht Van Lommel, the main coder of Cycles, the new Render Engine for Blender 2.61. How came it that you started working on a completely new render engine for Blender?
BvL:
I've been working for quiet a while on the existing Blender render engine, we
used it in many projects like the Open Movies. It has a lot of limitations, it
was started in the 80ies and more and more features where added on top of it.
The core of it isn't very modular and is sort of built for direct lighting and
rasterization. Adding more stuff on to it became more and more difficult. I've
tried to get the core working well and upgrade it but it wasn't working very
well. At a certain point I just had a lot of free time and I just started coding
in my free time "My ideal Render Engine". I tried to put in some things I
learned from working with the artists on the Open Movie Projects. After half a
year I showed it to Ton Rosendaal and he was interested in it. Now I started
working for the Blender Foundation again, half time solely on the Cycles render
engine as a new renderer for Blender.
BD: Just half time?
BvL:
Well, I got a lot of other assignments like fixing bugs, release management and
getting other coders get their work fit for integration into Blender. So I can
spend only half my time on Cycles. But it's pretty good to be an employee of the
Blender Foundation or the Blender Institute. It's a super job helping all the
volunteers.
BD: What's the target
audience for Cycles?
BvL: The target audience is
more or less the same as Blender itself - individual artists and small studios.
It's not meant to be a render engine for Hollywood. It's meant to be something
that is easy to use, that produces renders quickly without too many technical
parameters to tweak. I tried to keep it as simple as possible. The other thing I
tried to do is make it more interactive. In Cycles you got a realtime
interactive preview which updates while your working. That's really important.
In the Open Movies we had some rather complicated renders and whenever you hit
"Render" it took several minutes until you actually saw pixels. So tweaking
parameters took a lot time.
That's why I made Cycles an
interactive raytracer. It keeps updating while you are chaning parameters so you
can see results as soon as possible.
BD: You did not take the
pure physically correct approach but allow a lot of cheating?
BvL: We try to make it
possible to cheat in various ways which are usually not possible in various
physically based render engines. Basically if you want to do animation rendering
and want it to render quicker you need to be able to disable various thinks like
full Global Illumination or Caustics or reduce bounces for certain objects.
There are various more tricks that allow to render things not physically correct
but suitable for animation.
BD: That's what Cycles is
probably gonna do in the next Open Movie. Are you looking forward to the
work?
BvL: That's in the next 4
months, so that's a bit scary. We'll see how it goes. We still got Blender
Internal as fallback if we need it. But Cycles will be tested for various VFX
tasks like render layers and render passes that will be composited with real
footage and evironment lighting from real footage. That will be the focus for
the next few months, make it usable for VFX works.
BvL: At the moment we got two backends, one supporting OSL and the main one that is working on CPU and GPU. It is planned that one day OLS is supported in Blender.
BD: So some day one will be
able to use custom OSL shaders in Blender
BvL: The main issue is to get OSL working on the GPU. It's almost as much work as building Cycles itself. It's not easy to do so we need more people to help us.
BD: For GPU rendering,
Cycles is supporting both OpenCL and CUDA. Why this decision?
BvL: Actually the languages are very similiar. OpenCL just has a few more restrictions that CUDA. Once you restrict yourself to the featureset of OpenCL it's very easy to also compile for CUDA and CPU. The CPU thing is very important because many people don't have a suitable GPU or you got a scene that needs a lot of memory. OpenCL is also very important since it is supported by both AMD and nVidia. CUDA has the superior performance so it's usefull to support both all three. So every user can choose the option that best suits his hardware.
BD: Regarding interface you have chosen a dual-approach of both the traditional interface based on layers, but at the same time supporting nodes.
BvL: We have chosen nodes
because they allow a lot of cool tricks and combinations. But nodes also tend to
be harder to manage. In order to set up a scene with lots of materials there
will also be presets, groups of nodes like plastic or metal. You will be able to
stack them in a simple tree view so you can have results very fast while you
still have the option to do all the complex and crazy things with nodes.
HasanimationARTS
: Thanks to BlenderDiplom for this magnificient interview
with Brecht Van LOMMEL.
Hiç yorum yok:
Yorum Gönder