Showing posts with label rendering. Show all posts
Showing posts with label rendering. Show all posts

Tuesday, June 23, 2015

Glimpse of Distributed Bucket Rendering (DBR)


After busy few weeks, recently I have stumbled upon a render that really pushed my workstation to its limit. It had nearly 20 high detailed tree geometry that are animated. With some RnD I found out that rendering time per one frame in acceptable quality is around 40 to 50 mins; in mental ray. With 250 frames to render, the waiting is going to be so long. But then I decided to switch to distributed bucket rendering. Which the idea is to directly use mental ray satellite services installed in my spare workstation and laptop to add their computing power to the total rendering.

Unlike in backburner like software based network rendering, where the 'job' is divided by frames and are sent to each render node to render an one whole frame, distributed bucket rendering gets the 'help' of other render slaves to render a 'bucket' or a small portion of the rendered frame. (The size if this 'bucket' can be manually set in both vray and mentalray.) Setting up a distributed bucket rendering setup is fairly easy. All we have to do is assign static i.p adresses to all the slave nodes and write them down, and put them under ip list in “Distributed Bucket Rendering” rollout in mentalray render settings- processing tab. And its recommended to check use placeholder objects and use mental ray map manager ticks before we hit render. The reason for this can be found here.

So after all, we just have to hit render and if all goes well you will see that render window showing up with number of buckets more than you see when rendering with your hosting workstation. This number of buckets is directly linked with the number of processing units (physical or logical) you have in your workstation and render slaves. So if you are using better hardware, you will end up with high number of buckets rendering your frame. But keep in mind that this method is not the suitable method for all the scenarios. For an example, in a situation with less per frame time, but large amount of frames, this method can even increase your render times. This is because even though your frame is simple, mental ray have to send and receive data/ communicate with its render slaves in order to render out that frame. So in situations like this, methods like backburner become more effective.

Friday, September 26, 2014

Learning Rendering; a sensible approach


Once I heard some veteran in the CGI industry states that render engines are like religions. It’s where you seriously communicate with your software/ workstation, in order to get your intended output. Selecting a render engine takes practice, and intensive studying on each aspect of it, but unfortunately most of the render engines are packed up with technical jargons that may be difficult for an ordinary user to understand. Because of the attractive nature of the productions done with these big render engines, ordinary users tend to ‘jump’ straight on to these big render engines without studying concepts of lighting or shading; thus ending with poor quality renders or unusually long render times.

‘Best universal settings to render’ is a myth.

I have seen many people just asking ‘what are the best settings to render using v-ray’ or mental ray. Unfortunately, there is no specific, magical set of settings called ‘best settings to render’; cause depending on your scene, your render settings is going to change in a huge range. Best render is subject to interpretation : it can be either about image quality, or speed. So basically, your scene’s best render settings lies somewhere within the maximum amount of time you wish to spend per one frame and your intended render quality. This notion change when you are testing and when you are producing your final images.

First step - start from the basics

If you are a beginner, the best playground to learn rendering is your software’s default render engine. Of course, it will have lots of constraints, but you will be forced to study lighting methods and how to ‘fake’ things like indirect illumination and make your ‘stuff’ ‘beautiful’ with the limited resources.

Second step - migrating (only) when needed

As you get deeper and deeper using a ‘primitive’ render engine in rendering, you will come up to a point where you understand what is missing in them; it may be a cool sub surface scattering material or a kind of light with some qualities that are missing from the lights from the basic renderer.
Then that is the best time to start migrating to a semi-professional render engine like Mental Ray that still is available within most of the commercial 3d packages. From my point of view, Mental Ray is a really great place to start learning these technical terms like ray tracing, antialiasing, interpolation and whatnot.

Also, when you get into using renderer like Mental Ray, you will understand the constraints they impose compared to basic renderers. I have seen people who prefer basic render engines like 3ds Max default scanline over other renderers when it comes to rendering some passes and even effects like hair and fur. You will most probably find professional and semiprofessional renderers are not your best friend when it comes to ‘quick and dirty’ gigs.
However, this migration period will be really interesting for you, for you will learn a lots about the advantages and disadvantages of both worlds.

Third step - go further, and know what you do.

After the crucial second step, you will find yourself surprisingly comfortable using your new render engine. If you are serious about what you are doing, don’t stop. Take the next step; go for a commercial render engine like VRay. And when doing, compare your current render engine’s features with their substitute features in V-Ray. Don`t just learn, but understand the advantages/ disadvantages of both. A successful third-party professional render engine migration may take a few weeks to a few months, and you will find it’s totally worth it. Read user reference and articles that will directly answer the questions in your brain. I find that tutorials are not helping that much when it comes to understand rendering. Because most of the tutorials I found, are targeted at getting a certain output, and the tutor will most probably adjust one parameter to a certain level and will just briefly tell you what it does. I find written reference material is clearer and can give you in-depth details of the parameter you are referring.

So eventually, you will be up to a point, where you can understand what is happening behind the parameter you are adjusting, and predict the result that you are going to get; it is where you really going to start to enjoy rendering. :-)