Guerilla Render in production

Introduction

If you have read my book, you may have noticed that I am a Guerilla Render fan. I have only used this wonderful piece of software on one show, Playmobil the movie (Director: Lino Di Salvo), but I almost instantly felt in love with it.

Before we go deep into the description of Guerilla, I would like to state that I do not work for Mercenaries Engineering. I am doing this post because I have been annoying many many colleagues with the cool features used on Playmobil… And thanks to my website I can even bug more people now. 😉

Joke aside I think there were some really powerful ideas on this show that are worth mentioning and sharing. Lighting workflows are currently such a hot topic in the industry that I thought it would be interesting to write a post about it. I also want to state that all the features presented here have been used in production. No bullshit !

Production examples

Furthermore I totally acknowledge the fact that Playmobil was not a commercial success. There is no point in hiding it neither the harsh YouTube videos. I also agree that there was room for improvement on this project in terms of lighting.

Nonetheless we did our best and I am very proud of the work achieved by our lighting team. And I believe that Playmobil did not get the success it deserved. Sometimes it’s just bad luck… I would like to thank my former colleagues from On Animation for letting me write this post and their support.

I will also show some very cools renders from this wonderful movie called Minuscule 2 to illustrate some of my ideas. Visual effects were done by a small but very talented studio called The Yard VFX. I believe Guerilla was used in the most efficient way on this movie. Thanks to Laurens Ehrmann for his support on this post. Let’s start !

What is Guerilla ?

Guerilla Render is an assembly software and a bi-directional path tracing render engine. This wonderful piece of code is exactly what I expect from a modern render engine. It uses a nodal, procedural and non-destructive workflow with cutting-edge technology.

How can I quickly describe Guerilla ? Maybe the best way to start would be to actually present a shot using some of the best features of Guerilla. Let the software speak for itself !

What is the difference between unidirectional (Uni) and bidirectional (VCM) ? Bidirectional shoot rays from the lights and from the camera. And then connect them together. By the way Arnold is unidirectional Path Tracing, like Glimpse (Animal Logic).

Shot example

I still remember clearly the moment I felt in love with Guerilla. The shot below made me realize how powerful Guerilla is. Everything that is normally forbidden to do in CG is available in this shot :

The final shot from the movie.
  • 3D Motion-Blur : checked !
  • 3D Depth-Of-Field (DOF) : checked !
  • Volumetrics GI Rendering (super heavy VDB) : checked !
  • Bi-Directional Path Tracing : checked !
  • Russian Roulette and Adaptive Sampling : checked !
  • 16 bounces everywhere : checked !
  • One Beauty Pass : checked !
  • Deep Id : checked !
  • Mesh Lights : checked !
  • Displacement, SSS and Procedural fur : checked !
  • 2048 AA samples : checked !
  • Light Path Expression : checked !
  • Rendering the whole background through a Refracting Glass : checked !

I personally know only two render engines that can handle this amount of features : Guerilla and Glimpse. They were strangely very similar in their behavior.

I guess great minds think alike.

Shot description

This shot is part of a night sequence which is around two minutes long and about 40 shots. Under Rémi’s supervision, we did a day for night lighting to get this soft blue illumination which is so popular in animated features.

On this particular shot, we wanted the volcano to be the center of interest. So we turned off the moon and sky to enhance the volcano’s dramatic effect. We were not afraid to break continuity to serve the story’s purpose. There were more than forty lights in total. Not an issue for Guerilla !

  • Natural lights : the volcano lights.
  • Practical lights : the garlands, headlights, windows and windshield.
  • Dramatic lights : some bounces, top lights with blockers and rims… The whole thing !
120_guerillaRender_020_screenshot_411000007_FHD
120_guerillaRender_030_screenshot_411000007_FHD
Exit full screenEnter Full screen
previous arrow
next arrow
 

The UI and RenderGraphs in Guerilla Render.

If you are wondering how many bounces we use in production, here are some examples : Animal Logic uses 12 bounces, Disney 10, On Animation 16 and Cinesite FA 1. From the tests I have seen, do not go below 6 bounces !

It is also pretty important to keep the same number of bounces for diffuse, reflection and refraction in my opinion.

Lighting and Compositing

We did output some AOVs as a safety net in case we wanted to tweak some renders in compositing. It did not happen on this sequence. We were pretty much happy with the CG result and as you can see there is not much difference between the Guerilla Render View and the final output from Nuke. They are pretty much similar.

120_guerillaRender_010_playmo_sht_410000007_cmpren_FHD
120_guerillaRender_040_playmo_sht_410000007_ren_FHD
120_guerillaRender_050_playmo_sht_410000007_spec_FHD
120_guerillaRender_060_playmo_sht_410000007_refl_FHD
120_guerillaRender_070_playmo_sht_410000007_refr_FHD
120_guerillaRender_080_playmo_sht_410000007_albedo_FHD
120_guerillaRender_090_playmo_sht_410000007_sub_FHD
Exit full screenEnter Full screen
previous arrow
next arrow
 

The final renders and AOVs of this shot.

Could we have added some details ? Some scratches on the window and the door would have helped. Details in CG are expensive but it really makes the image richer.

I agree some fine tuning compositing would have been a plus.

There is a debate on how close a CG render should be to the final output. Many lighters argue that we should light in “Raw” (like a flat lighting) and then do the final look in compositing.

I used to think that as well. Until I went to Animal Logic and that was actually the same thing on Playmobil. On both shows, we were able to light and render as close as we could to the final result. Which was really awesome. Here is a quick list of arguments in favor of this method :

  • I personally want to light as close as the final result, not to go through a detour. Go straight to the final image.
  • Guerilla and Glimpse handle sampling greatly, it was not a issue to get some contrast in our renders.
  • In the end, what really matters, is to get enough range for DI in your final output. I still remember Craig playing with exposure and gamma during Quality Check before final approval.

Anyway, back to the shot above… Can you imagine how many layers would have been necessary without 3D DOF ? And how would we have even composed them afterwards ? A real brain teaser ! It would not only have been very long and painful but also more expensive. Here is the reason why.

Render times

After reading the paragraph on layering, many readers have asked me about render times when it comes to rendering only one beauty pass. I really want to state clearly that our render times were not an issue on Playmobil. They actually were similar to the render times we had on Lego.

Funnily enough Lego and Playmobil were the only movies where I was able to render everything in one beauty pass. And it is no coincidence that Glimpse and Guerilla have a lot of common in terms of sampling. They are proper modern path tracers.

Anyway, even with all these crazy features, the average render time of this sequence was around 6 hours per frame for final quality, this shot being the most expensive with 11 hours per frame.

I actually did a mistake on this sequence. I should have turned off the bi-directional. With so many lights in the scene, bi-directional does not bring much visually. Render times would have certainly been even lower.

Oops… We updated the Render Settings template right after this sequence without any bi-directional and 8 bounces for the whole film. It was more than enough.

Human time VS Machine time

I would also like to point out a very important thing : what is expensive on a show ? Salaries. It is not the electricity nor the render farm. So if we take the example above, yes we could have saved some render time by doing many optimizations such as :

  • Remove displacement and SSS by layer (for non-visible elements).
  • Remove any useless geometry.
  • Reduce the number of bounces or even lights.
  • Split into many layers to save some memory.

But how much time will you spend to achieve that ? And how much time will you need to compose the shot correctly in Nuke ? Optimization is not that cost efficient. And all of this brings us to our first principle on Playmobil : Human time is much more expensive than machine time.

A couple of interesting videos to prove it : one in French by Jean-Marc Jancovici at the Senate and one with an Olympic cyclist.

Thanks Philippe for the links !

I am not saying you should not care about render times on a feature film. Not at all ! But from recent studies, the render farm is only 3% of the budget on a movie. There is not much to save there. At least in a modern pipeline, which brings me to my next point.

Modern pipeline

It seems to me that currently a hot topic in animation is about pipelines and how to increase quality and efficiency. It is certain that animation pipelines need to evolve. Which is actually something very difficult to achieve for many reasons :

  • If the studio is in production, you may have to wait for a gap between movies.
  • People’s culture. Why would we change something that works and that we are used to ?
  • I have even heard some supervisors tell me : it is sometimes easier to throw everything at the trash and start from scratch rather than trying to fix a defective pipeline.

So what is this big evolution everyone is talking about ? Which direction should we be heading ? The following screenshots have been extracted from the Pixar presentation at Siggraph 2019. I think they show quite well the direction to follow.

120_guerillaRender_100_old_pipeline_FHD
120_guerillaRender_110_new_pipeline_FHD
Exit full screenEnter Full screen
previous arrow
next arrow
 

What we should eventually try to achieve… Looks promising !

I have never worked with USD but the closest workflow I have seen to a digital live set was on Playmobil. Let me give you a couple of examples.

Digital Set on Playmobil

What do these images tell us ? How can we apply this concretely ? A pretty good solution has been given to me by Pascal Bertrand and Rachid Chikh on Playmobil. I still remember clearly the moment they shared with me their vision.

It was during my interview that they nonchalantly announced me : Why should lighting only be done during the final stage of production ? Why couldn’t it be done before animation for example ? Like in a live-action movie ?

There is a couple of moments in your career that one may define as game changing. When Pascal and Rachid shared with me this idea during my interview, I was shocked :

Wait ? What ? Lighting before animation ? It can’t be !

And then I realized (like a month later) that it made complete sense : one should light Rough Layout.

Same shot as above in its Rough Layout version. We actually did some adjustments when final assets came in.

Great thinking out of the box ! Just brilliant ! This may not be the ultimate solution but it is definitely a big step in the right direction. Lighting during Rough Layout is key in a Digital Live Action Set. What advantages does it bring ?

Coherence and flexibility

  • Having lighting intentions during Rough Layout bring the director’s vision to life much earlier in the process.
  • 3D Motion-Blur and Depth-Of-Field are set during this stage and maintained until final render with a few adjustments due to performance and set updates.
  • Gain of time in our production. With Depth-of-field set that early in our process, it is much easier to put our money where it is worth it.
  • The Animation Department can use our light rig to position their characters precisely and anticipate any staging or blend shape issue.
  • One render engine in the whole pipeline. To maintain coherence through departments, every movie presented to the director would have to be rendered with Guerilla Render.
  • Lighting Rough Layout also makes other departments work in a cleaner way : assets cannot be moved arbitrarily in the scene. It helps to maintain coherence and logic between departments.

I don’ t know if I was lucky or not but this lighting process on Playmobil helped me to anticipate lots of issues like naming, constraints, split of geometries. It was also very interesting to play with the 3D DOF.

Moving to final assets and shot lighting was pretty straight-forward in most cases.

Workflow aspects of Playmobil

Lighting Rough Layout is not the only aspect worth mentioning of Playmo. I would also like to describe some philosophy aspects of this production. I had the chance to share 100% of Pascal‘s vision in that matter. Pascal Bertrand is CTO of On Animation and a great guy to work with.

  • We want to maintain as little code as possible. Guerilla works natively and integrates most of the needed features. No need for an army of TDs !
  • We don’t care about render times aka human time is much more expensive that machine time.
  • Brute force rendering. We avoid cheap tricks and rely mostly on Path Tracing and PBR for our renders.
  • Every process has to be replicable. No manual hack, it’s all about building and publishing our work. Especially for rendering !
  • No comp. Yeah that’s a bit extreme but it forced us to push the assets and their look in Guerilla.

‘Build’ and ‘Publish’ are the two main processes for any department. ‘Fire and Forget’ was our publishing policy on Playmobil. So efficient !

Concrete solutions

These concepts may seem basic to you but I believe they are at the core of a modern workflow. What do they mean concretely ?

  • One layering template for the WHOLE movie. Yes, you have read well. No more layering issues ! The whole movie has been rendered in one Beauty Pass and if needed one Volumetric Pass.
  • One rendering template for the WHOLE movie. Same thing here, we used the same sampling values for the whole movie. No more testing or second-guessing. Same thing for bounces : 16 bounces everywhere. Yes !
  • One lighting scene per sequence. You may be already used to a Sequence Lighting workflow but this has been a revelation to me. Guerilla and its Render Graph are a perfect fit for this.
  • We don’t need to open every shot of the movie in Guerilla. If you validate the master shot, all the child shots can be rendered directly.

The whole idea behind this was simple : we wanted lighting artists to take care of… lighting. Not sampling, nor debugging. It did not mean that our lighting artists should not be aware of the technical side of things but we did not want it to be their main focus.

It is all about proper training, really.

On Playmobil, thanks to these great features, we would have one lighting artist per sequence and a very small lighting team overall : twelve persons in total ! I believe small teams embracing Sequence Lighting is the future of the industry.

Sequence Lighting

If you have read my book about CG Cinematography, you are probably familiar with the concept of Global Lighting. Sequence lighting is part of this philosophy, it allows you to work on a sequence within one file or archive.

During the phase of Master Lighting, to establish the mood on a sequence, we generally want to control the whole sequence with one light rig. Let me go back in time a bit to present you different versions of this wonderful technique.

The secret life of pets

I first discovered Sequence Lighting on The Secret Life of Pets. Back then (2015) it was pretty much manual. I had to synchronize my shots every evening to test different camera angles in order to setup a strong light rig.

120_guerillaRender_130_key_shot_pets_FHD
Exit full screenEnter Full screen
 

We still had to manually open and check every single shot.

Any shot override had to be done in the shot itself and would be lost in case of re-synchronizing the shot. This process worked well but was very time consuming and could lead to many human errors.

Lego Batman

I then moved to Animal Logic where Sequence Lighting was pushed to the next level. This was a cultural shock to me ! The whole sequence lighting process had be merged into one file where you could manage, if you wanted to, as many shots as you wanted.

We also could render a shot without even opening it. It really took me some time to accept the fact I could render massively and almost blindly. But think about it : if your key shot is approved and your child shots are very similar, why bother ?

120_guerillaRender_140_key_shot_lego_batman_FHD
Exit full screenEnter Full screen
 

One file to drive nine shots. Yep that’s the way to go !

Basically, you could assign a light rig to x number of shots and by hitting Render, shots would assemble on the fly (with latest publishes of every department) and render on the farm without even opening Maya. Same thing with Nuke scripts. Automatic compositing… Really powerful !

I really want to emphasize this : no need to open your lighting software to render a shot on the farm. We certainly do NOT want to render the scene of the artist. Why should we bother opening the child shots if the master has been approved ?

120_guerillaRender_150_lux_rss_FHD
Exit full screenEnter Full screen
 

These RSS scripts were really powerful. What a great way to manage a sequence !

It is no coincidence Craig Welsh called his article Industrialized Cinematography. This whole process based on the Render Explorer saved our lives when we delivered Lego Batman in a record time.

From what I can remember (it was back in 2016), the only downside to this workflow was that it was destructive. You had to execute the RSS file to check your scene with no possibility of modifying it after that.

It seems to me that companies are evolving towards smaller structures : less people with better technology. We did Lego Batman with less than thirty people. Fewer costs, better management, happier artists.

Playmobil the movie

Sequence Lighting on Playmobil is probably the only time that I worked with a completely non-destructive workflow thanks to the amazing Render Graphs. We would have one Render Graph on sequence level and one Render Graph per shot for any overrides.

120_guerillaRender_020_screenshot_411000007_FHD
Exit full screenEnter Full screen

The sequence Render Graph and the shot Render Graph. You can turn off any node very easily. Non-destructive workflow.

Let’s say I had to change the moon temperature or exposure in my sequence. I did not have to open the 40 shots one by one. Not at all ! I just had to open one file to manage the whole sequence. This looks like an healthy workflow to me.

The Sequence lighting debate

We had an interesting debate on Playmo about Sequence Lighting and its impact on the industry. Will Sequence Lighting destroy jobs ? I have often used the comparison with the typing pools from the 1950s.

120_guerillaRender_160_typing_pool_xerox_FHD
120_guerillaRender_170_typing_pool_xerox_FHD
Exit full screenEnter Full screen
previous arrow
next arrow
 

This comparison is a bit far-fetched but hopefully you get my point.

We were a hundred lighters on Happy Feet 2 (they even hired a lighter from France and made him come to Sydney to light a single shot). And we were only 12 lighting artists on Playmobil. So should we be worried about finding a job in the next few years ? I would say no for these three reasons :

  • It will probably take ten years or so for studios to fully embrace the Sequence Lighting technique.
  • Big studios (like MPC, Framestore, Illumination…) will ALWAYS prefer hiring too many artists rather than the contrary. Their biggest fear is not be not able to deliver. So their hiring policy is kind of a safety net.
  • When you deliver your movie in three months, like it is happening more and more often, you kinda need manpower. Like an army of lighters to finish the job.

To be perfectly clear, I don’t want put anyone out of their job. But Sequence Lighting is happening and if the studio is organized (sequences delivered in time and with a good balance of shots), it will change the industry for good.

Its biggest advantage (apart of saving money for the studio) is that one lighting artist can manage a whole sequence by himself. Making him more motivated and involved than if he inherited the light rig from someone else. So his personal investment will be more important resulting in a more coherent and hopefully better result. Like a virtuous circle. Who wants to copy/paste/render ? Nobody.

Other cool features

Real-time Viewport

Playmobil is also the only show in my whole career where I could use a perfect real-time IPR on production assets. It was not another demo from Siggraph. The real time worked perfectly in final shots of the movie. The only thing we had to remove was the fur. That’s it ! We even had the volumetric in the viewport. Insane !

I completely agree with Jean-Michel Bihorel (Lighting Supervisor of Minuscule 2) on this one : I find the interactive render from Guerilla much more reactive than any GPU render engine.

Word.

In this next video, I am using the Pixar Kitchen scene, surfaced, textured and lit by Flore Dechorgnat. This complex scene using 15 shaders, around 250 textures (from 512x to 4k resolution), UDIMs, 14 lights and some translucency works very nicely in real-time.

I have tried to present my favorite things about Guerilla in less than three minutes.

I know some studios went for a GPU/CPU solution. In my experience, it was not interesting. Because the results are so different between a render engine and an other that I could not rely on theGPU. And it actually multiplies the job by two : two render engines to develop, two sets of shaders… I have not tried Renderman XPU but right now I am a full CPU believer.

120_guerillaRender_190_gazebo_apes_FHD
120_guerillaRender_200_gazebo_apes_FHD
120_guerillaRender_210_gazebo_apes_FHD
Exit full screenEnter Full screen
previous arrow
next arrow
 

With heavy VFX assets, GPU is mostly interesting for previsualization.

One button render

We also had a launcher on Playmo (same concept as Animal). Concept was pretty simple : One button render. What if your producer asks you to see the movie in its current state on the 15th of August ? Are you going to manually open every shot ? Nope. On Playmo, we were able to render a full sequence with just one click or a single command line.

Of course, this launcher would give us some options in terms of anti-aliasing and frame stepping (First-Middle-Last being our most current choice). The whole idea behind it was pretty genius : we don’t want to render the movie only once. We render several iterations and improve the quality every time where it matters.

Playmobil fun facts

My interview

My interview at On Animation was pretty much unique. Yes we did watch my demo and discuss workflow, pipeline and render engines. But the main thing I remember from Pascal and Rachid is this beautiful sentence : we don’t hire trolls.

I really think it was clever to pay attention to this. Most studios do not care about the psychological side of a production. But if someone, especially in an open space, sighs a lot or criticizes the work, it can really bring the whole department down. So I found it very unusual but also very refreshing that they paid attention to that.

You want to keep the spirit of your team high, especially during crunch time and sometimes it can come from only one person to bring the whole team down.

Meeting with Anya

Playmobil is the only time where I met with an actress. In thirteen years of career, it was on Playmo that I had the privilege to meet Anya Taylor-Joy. As you probably know, I am a huge fan of The Witch so I was really thrilled to listen to her talking about her role and ask a couple of questions.

This may seem trivial to you but I think it was really cool to meet someone from the cast. We also had the opportunity to visit the live set from Playmo. All of these interactions bring life to the studio and really help to keep the spirit high.

120_guerillaRender_220_playmo_mels
120_guerillaRender_230_playmo_mels
120_guerillaRender_240_playmo_mels
Exit full screenEnter Full screen
previous arrow
next arrow
 

Lots of cool things happened on the show to make us feel part of a team.

Master class with André Turpin

Playmobil is also the only time where I had a master class with a DP. André Turpin came to the studio and gave us an amazing Master class. Without any notes, he talked during more than an hour about lenses, shooting on set and his experience. This was so interesting ! Meeting a real DP !

Breakfast with Lino

Finally Playmobil is the only time I had breakfast with my director. All of this may seem useless to you but believe me, it makes a big difference when a director explains his ideas and share some footage with you.

It makes you feel you are part of something greater than you and that everybody tries to reach the same goal : make the best possible movie. We also had cheese & wine in the evening. That was cool !

Guerilla, the future is here

Denoising

One thing we need to take in account with path tracing is the noise in the renders. Denoising can be done in Nuke or even better as a post-process in the render. Guerilla Render includes the latest Open Image Denoise from Intel.

Renderman and Disney also have done some research on a Denoiser.

Brute-Force Hair

Yes, the Hair2 shader from Guerilla is based on the latest paper from Disney. You can even play with all the settings interactively without even opening Guerilla. Just click here.

From what I can tell Guerilla Render uses the latest technology in terms of CG rendering. All the features I have mentioned in this post have been used in production. This is not a demo that would only work in a certain context. Nope. It is 100% Production Proof and these features have been thoroughly tested.

Volumetric SSS

Could you tell me how many movies with a budget of 13 million EUR (approximately 14 million USD) used the same SSS technique as Moana ? I did not work on this wonderful movie called Minuscule – Mandibles from far away but I believe it is a pretty much unique experience in the history of VFX.

120_guerillaRender_250_minuscule_yard_FHD
120_guerillaRender_260_minuscule_yard_FHD
120_guerillaRender_270_minuscule_yard_FHD
120_guerillaRender_280_minuscule_yard_FHD
120_guerillaRender_290_minuscule_yard_FHD
120_guerillaRender_300_minuscule_yard_FHD
120_guerillaRender_310_minuscule_yard_FHD
120_guerillaRender_320_minuscule_yard_FHD
Exit full screenEnter Full screen
previous arrow
next arrow
 

Beautiful shots and great story too. Loved it !

Check out the quality of the assets, the beauty of the lighting and shaders. How big was the team do you believe ? They were 25 artists to deliver more than a thousand shots ! I cannot remember another movie done in these particular conditions with such a high level of quality.

Congratulations to The Yard VFX team for this beautiful achievement. Check out the movie if you haven’t seen it : there’s no dialogue (a bit like the fist part of Wall-e) and all the humor is based on body language. A gem ! All the creatures from Guadeloupe were new assets, beautifully achieved by Jean-Michel Bihorel and his team. Well done guys !

Conclusion

I have tried to share with you my love for Guerilla based on my experience on Playmobil. As you probably have guessed, I have used many other render engines (seven in total I think) and I would only stick to Guerilla if I could. It is currently my favorite piece of software to render.

I agree that the most important thing is how you use the software and not necessarily the software in itself. But I would also say that Guerilla’s modern architecture makes you probably work faster and with less mistakes than any other software.

I also use Guerilla when I teach at ENSI in the south of France, where this beautiful short film Sous la glace (directed by Milan Baulard, Ismaïl Berrahma, Flore Dupont, Laurie Estampes, Quentin Nory & Hugo Potin) has been made. ACES was also used as a Color Management solution.

Oh ! I almost forgot ! You can actually own Guerilla for free ! You are allowed to download one free connected license for everyone, including commercial usage. Yep I kept the best part for the end. Have fun !

If you are a teacher or responsible for a school, Guerilla is free as well, including licenses and support. Give it a try !

Yeah that’s awesome !

Sources