Following yesterday’s article about Unbiased GPU Rendering with FStorm by Daniel Reuterswärd, is this first article by Johannes Lindqvist out of three he is going to publish here about the same topic. So what is the big deal with Unbaised GPU Rendering? Let’s find out!
My name is Johannes Lindqvist, a Swedish architectural visualization artist focusing mainly on interiors. I’ve been into 3D the past 14 years of which 8 have been professional.
About 5 of those, I’ve spent working for IKEA, doing 3D images for their catalog and website. Today I’m working as a solo 3D artist for an awesome advertising agency in Sweden called “Creative Army”.
This article in three parts will focus on two renderers, Octane Render and FStorm render.
Part one, this one, is a bit general about GPU rendering as a concept, and part two is more of a comparison between the two. The images you see through part one and part two are just a selection of my works made in those two renderers.
In Part three, I will briefly go through how to use Octane; set it up; where to find stuff; how to add an HDRI; set up the camera and so on, so you guys easily know what you need to know to be able to test it properly.
Also make sure to check out Daniel Reuterswärds article about FStorm from yesterday
What got me into unbiased GPU rendering
Everyone is different. Everyone prefers different ways to work, and everyone needs different tools. As I’ve been in the interior arch-viz market for most of my 3D career, I’ve been struggling for a long time to evolve and become better.
Before resigning from IKEA, I’ve always been using V-Ray. This was the only certain choice of renderer if I wanted to have a future in the business, and for many it still is. V-Ray was, and is an industry standard, and I never questioned it, nor believed things could be better than it. It’s a top of the line renderer and when it comes to features and workflows, my belief was that if V-Ray doesn’t do it, then it can’t be done.
I would, of course, find out that I was very wrong, and my struggle for improvement would soon turn into a really fun, rocket fuelled journey.
In 2014, while working at IKEA, I figured I wanted to try my wings, ‘in the real world’, outside of IKEA’s safe and comfortable shelter. So I resigned and took employment at my current workplace, being the first and only 3D artist in the company.
This, of course, meant that I had no rules to follow, no demands to live up to. I could write my own rules and take my own decisions. As long as I deliver a result, no one cares about how I do it. So I quickly decided to try Octane Render. Without any high expectations, that very decision turned out to be the best I’ve done in my whole 3D career.
“In V-Ray, I’m a technician, in Octane/FStorm I’m a digital photographer”
Starting out with Octane, the first thing that hit me as a core V-Ray user for the past 12 years, is that there’re no settings. Well, of course, there are settings, but compared to V-Ray, there are very few.
Unbiased renderers (even CPU ones like Maxwell Render) are meant to be physically correct, meaning that they don’t cheat. And since they don’t cheat, there isn’t really many settings we have to care about. Simply, they are what they are and they are bloody good at it.
As I work mainly in the architectural visualization field focusing on interiors, the most important thing for me is to be able to work as a photographer. As I usually say, in V-Ray, I always felt like a technician, there are so many settings to take care of, so much knowledge needed to solve different bugs and problems.
In Octane, however, I could be that digital photographer. I don’t have to care about the technical stuff, I could spend all of my project time on shaders, finding camera angles, lighting, and composition instead of trying to work out the correct image sampler settings. I could focus entirely on the creative part and be an artist, instead of troubleshooting things.
What Octane and FStorm gave me that V-Ray couldn’t
- A fantastic real-time renderer with a live render region.
- Insanely fast previews of the result while working.
- Unbiased: Super easy setup, hardly any settings to care about, it just gives me realism out of the box.
- More or less final images directly from the renderer.
- Change exposure, white balance, and other camera settings without having to re-render.
- Beautiful, error free GI calculations, no splotches or glitches.
- Lens effects like glow and glare calculated in real time.
- White balance and camera focus pickers directly in the frame buffer.
Let me explain a few of those :
Real Time Rendering
The most important feature Octane and FStorm, the real-time rendering, is in no way unique. V-Ray and Corona have their versions of it as well. Of course, I’ve tried them, but for reasons that I have no space to talk about in this article, I didn’t find them nearly as nice to work with.
However, the real-time rendering in Octane and FStorm is very responsive and allows me to “see my scene” with correct lighting and shading while I work, instead of just a wire frame viewport. It really speeds up the lighting and shading workflow.
With classic V-Ray, my material creation process used to look something like this :
- Make a material.
- Hit render.
- Wait for the scene to load.
- See that the material needs tweaking.
- Abort the render.
- Wait for V-Ray to stop rendering and 3Ds Max to unfreeze.
- Tweak my material.
- Hit render…
…and like that, the loop went on until that material was done, then it was time to make the next one.
In Octane and FStorm however, the process looks more like this :
- Start the RT renderer.
- Make my material.
- Tweak it to perfection, all while seeing the result in real time as I change the values.
- The material is done, and since it goes so fast, I actually have time to perfect it way better than I would in V-Ray.
No waiting, no wasting time, just effectiveness defined. Now, of course, this is possible to do with V-Ray RT as well, but I find the workflow much more convenient and responsive in Octane and FStorm.
Camera, Glow and Glare
A great thing with both of those renderers is that we can change almost every camera settings on the fly without the image having to re-render. The only setting we can’t change without re-rendering is the depth of field.
The same applies to the built in glow and glare effects, which I’d say are some of the most important features. Having this directly in the render really allows me to almost entirely skip the post processing. Usually, my final PSD files consist of 2-4 layers in total, and all of them usually is nothing more than small color corrections.
White Balance and Focus Pickers
Yep, that’s right. We can, directly in the real-time frame buffer, just click on the ongoing rendered image where we want the camera focus point to be, and it jumps there directly. No need at all to care about camera target position or measure the distance from the camera to the object that should be in focus. One click, and it’s done, the image is instantly re-rendered with the focus on the right spot.
Same goes with the white balance. Just select the white balance picker, and click around on the image until the colors are where you want them.
Hardware and Money
For now, both renderers must have one or several CUDA-enabled GPUs (Nvidia). The best and most valuable one this far have been the GeForce GTX 980ti, but now Nvidia is rolling out the new 10xx series (1070/1080) which will make a huge improvement. An important thing to consider while building a rig for GPU rendering, is that all the geometry and textures will be loaded into the GPU memory, so 6 GB GPU-memory is a minimum. Also, the GPU memory is not additive, so having two 6 GB GPU’s will still give you 6 GB and not 12 GB. This is because each GPU needs to load all scene assets to be able to render the image correctly.
Although, the performance scales linearly, so doubling the amount of GPU’s will double the render speed. Let’s say that you have one GTX 980ti in your workstation, which according to Daniel Reuterswärd’s (not so) scientific tests is more or less equal to how a decent Intel i7-processor performs in Corona, and you want more render power. If you were rendering with V-Ray, you’d have to buy a second computer with all that it means; Motherboard, processor, PSU, cooling, hard drives, windows license, 3Ds Max license (or whatever you use), a second V-Ray license, extra licenses for all your plugins etc. You do the math’s, it could cost you a small fortune.
With GPU rendering , however (given that you have free PCI-E slots on your motherboard), all you have to do is buy another GPU. And if you want 4x render power, buy 3 new GPU’s instead of 3 computers and 3 of every license you use. And to use network rendering in Octane, all you have to do is install an Octane standalone on that render node. It doesn’t need to be able to reach the file paths or textures, it doesn’t need any extra plugins, or 3Ds Max, or anything else. Octane packs the scene, including textures, down to an ORBX file; Octanes standalone’s own file format, and sends that to the render node.
As for FStorm and network rendering, that is not yet supported. Don’t forget that FStorm is much younger than Octane.
Negative aspects of GPU rendering
As you probably figured out by now, the biggest (and according to me; the only) real downside with GPU rendering is the limited memory. 6GB in 980 ti compared to, let’s say, 64 GB of DDR memory can be a serious issue. Even though I’ve noticed that GPU renderers seem to be far more memory-efficient than V-Ray, 6 GB is sometimes not enough which have forced me to do some texture optimizations. Although spending 15 minutes to optimize all the scene textures, I’ve managed to lower the memory consumption down to about 35-40% of the initial consumption without it actually making any visible difference in the image. More about texture optimizing in part three.
Also, in the very near future, with Nvidia’s new Pascal architecture, we can expect a whole bunch of new 12-24 GB GPU’s or even more, and suddenly the only real downside of GPU rendering will soon be history.
Many believe that GPU renders are supposed to be super fast. And yes, they can be, in certain situations. What unbiased renderers have the most problem with is indirect lighting. Directly lit scenes, they eat like a beast, but indirect lighting can be a pain for them.
Studio images, product images, outdoor images are all examples of things that can go super fast with an unbiased GPU renderer. I’ve rendered product shots with heavy metal blend materials in 5000px resolution in less than 10 seconds, and I’ve rendered a city exterior in 5000px in just over 4 minutes. But for interiors, which has very much indirect light, unbiased renderers tends not to be faster than any other renderer at all as many still seem to believe. There are of course ways to optimize interior scenes in unbiased GPU renderers like deleting walls, adding fill lights inside the room etc, but I don’t like to work like that, I want to make it just as it was shot in a real room.
But, the big thing here which I’ve explained so many times, is that everyone seems to think that render times is the only thing that matters. And this is where I tell those people to wake up because it’s certainly not.
My render times on 4x GTX 980 ti, are usually between 2-4 hours in delivery-resolution per image, sometimes even more. Many shout out that my render times are too long, and that V-Ray could render it faster. And yes, they are right, but let’s not forget that the final rendering itself is the smallest, simplest and shortest task of any project.
Even though my render times are long according to some, the GPU real time rendering allows me to set lighting and create shaders so much faster than I ever could in V-Ray, and since there are hardly any settings, I save a lot of time on that as well.
So in the end, even considering long render times, my TOTAL production time is what matters, and it has gotten so much shorter today than it was before I started GPU rendering. Now I theoretically can (and actually have) make complete, photorealistic interiors from scratch in not more than 4 hours + rendering. Of course, that’s not very common since it all depends on what kind of material you get and how whiny the client is, but it can definitely be done.
Thank’s for reading this far and don’t forget to read the next two parts.
Don’t forget to be awesome!
Link to part three (TBD)
My Facebook page : https://www.facebook.com/JohannesL.Visualisation/
Download FStorm (free) : http://www.fstormrender.com/downloads
Download Octane (watermarked trial) : https://home.otoy.com/render/octane-render/demo/
FStorm Facebook group : www.facebook.com/groups/FStormGroup/
Octane Facebook group : www.facebook.com/groups/OctaneRender