Showing posts with label Pixar. Show all posts
Showing posts with label Pixar. Show all posts

Friday, September 19, 2014

PRMan RMS 18: Some tips on Rendering in Maya



RMS 19 is around the corner and will be released this fall. The new RIS engine works different than the RMS 18 reyes and ray tracer hiders but these old hiders will still be available. So why not write an article on how to get decent quality images out and how to streamline your workflow. Some of the workflow tips will still be useful in RMS 19.


What are my render options while working on a scene?


There are three ways to get your previews rendered. You can use the internal renderer. The interactive re-render option or the PRMan external renderer.
  • The internal renderer: Works just like the Maya renderer or Mental Ray. My biggest problem with this method is that Maya becomes unresponsive while rendering. You can stop the render process by pressing Esc but you can't modify any parameters in Maya. You can only twiddle your thumbs while waiting.
  • The re-render option: In this mode the renderer will constantly update the image while Maya stays responsive. You can change settings on the fly and see them change in de Render View. I have seen people using it successfully. Personally speaking I do not have a great experience with it. It does sometimes freeze Maya as it is still a process within Maya. This can really disrupt the workflow. It works best when you output your image to "it" and not to the render view in Maya.
  • The PRMan external renderer: In this mode the scene gets exported en queued up in the Local Queue manager (or the farm if you have one) and then rendered by RenderMan Pro Server. The big benefit is that it is an external process which won't block Maya from being used once the scene is launched. It is slightly less interactive than the re-render mode but is very stable. Since it uses the Local Queue it is possible to queue up multiple renders. It also uses "it" which is superior image viewer compared to the Render View.



How to speed up your workflow by using the external renderer


RMS 18 has two modes of rendering: reyes or ray trace. Reyes is a hybrid renderer (used to be scan line only) and the other mode is of course a full ray tracer. They both produce excellent results but they respond slightly different to the quality settings. I have made a test scene with a pencil and three black spheres lit with an HDR map.

Let's have a look at those settings (click on the images to see a full res version):


Image1: RenderMan Globals: Quality tab and advanced tab. (click image to see full res).

Under the advanced tab you can choose your render mode (or also called hider) (right window on image 1). When choosing reyes there is not much else to set in the hider tab. When choosing ray trace it is possible to tweak some settings. I prefer the adaptive path tracer. When you check incremental the image will start rendering noisy but will improve over time. I really like this as you get immediate results but you can also wait for more details to show up while it continues calculating the image. It allows you to judge the image quickly so you can start making tweaks. The image keeps rendering while you make those shading tweaks in Maya or when updating texture maps. (but does not incorporate them until the next render). For me it means I can do two things at once.

Image 2: RenderMan Render Options

To set up you external renderer you need to adjust some setting in the RenderMan Render Options.

  • Check the external renderer and choose "it" as your image display or your image viewer.
  • Choose local queue and local render (unless you have a complete render farm at your finger tips).
  • Set the environment key to "rms-18.0-maya-2015 prman-18.0". Important: You do need to have the RenderMan Pro server installed for this to work.


How to simply adjust quality.


The next section shows some differences in quality. Make sure to click the images to see the actual differences between them. The blurred reflection on the spheres and the text on the pencil are good places to look.

Reyes is easily controllable with the shading rate setting (left window on the image 1). Large values will produce course quality but will render very fast. A shading rate of 5 will give very quick renders but your texture maps will look blurred. This can be enough to see if everything renders but isn't very great to check the detail in your maps while you are painting them. The letters on the pencil are unreadable. Check out the test image below (Image 3):


Image 3: Reyes: shading rate 5, pixel samples 3x3

When you lower the shading rate, the quality will improve. Production renders are always on a shading rate of 1 or lower (like 0.5). This will increase rendering time. On the next image (Image 4) I lowered the shading rate to 0.1 which makes the small letters on the pencil very readable but the render time was 7 times as high as shading rate 5.

Image 4: Reyes: shading rate 0.1, pixel samples 3x3

The quality controls work a bit different when you are using the ray tracer. In general you can leave the shading rate on 1. It is in fact the pixel samples which control the quality of the image (check right window on Image 1). You can see on the next image (Image 5) that the ray tracer shows the texture maps more clearly but has more problems with noise and anti-aliassing. It is very noticeable in the blurred reflections.

Image 5: Ray trace: shading rate 1, pixel samples 2x2

Increasing the pixel samples will render better quality but will increase render times exponentially. On the next image (Image 6) we can see that 4x4 pixel samples is enough for a still image without depth of field. It is very comparable to the high quality reyes image.Once you start adding movement or shallow depth of field it needs much more samples to get rid of the noisiness.

Image 6: Ray trace: shading rate 1: pixel samples 4x4



Conclusion


As you can see, both the good old reyes and the newer ray tracer produce excellent results. I tend to lean to the ray tracer as I like the incremental path tracer. It is just great so your image improve over time. It is a bit slower than reyes though but delivers very sharp images  when the pixel samples are set correctly.

Saturday, August 30, 2014

PRMan: Installing Pixar's License server on Ubuntu

PRMan price drop


It is a great time in RenderMan land. Pixar will release RMS 19 with the new RIS render technology this fall. That is great news but the real whopper is Pixar's decision to dramatically lower the price of all this sweet candy. That's right, instead of thousands of dollars it has gone down to $495 per license. And the great thing is that there is no differentiation between RenderMan Studio and RenderMan Pro server anymore. A license can drive either product.

This price restructuring brings new opportunities for small VFX studios. But the fun does not end here. Students and hobbyists can now register for a non commercial license for free and there are no limitations in the software or watermarks in the images. There is really no excuse anymore to not try this render engine. The free version will also be available in the fall of 2014.


Pixar licensing


Now that the software is more accessible I like to talk a bit about the licensing system. Paying customers work with floating licenses. Floating licenses have a big advantage. You can install the software on as many machines as you want but it is the license server who dictates how many you can open at any one time.

A quick example: Say you got four people working on their own workstation but you got only two licenses. You can install the software on all four machines but only two people can work with it at any one time. This way nobody has to switch seats when they want to load the RMS for Maya plug-in. Once they finish, the license is released an someone else can work with it. At night, you can also use the free licenses for the render farm.

For this system to work you need to run the license server software. This can be on your workstation or another machine like a fileserver or render farm manager. If you have only one machine on which you use PRMan then it is ok to put the license server software on that specific machine. But when you have more it is better to install it on a dedicated machine that stays on all the time. This doesn't have to be a power house computer. I run mine on a Intel Atom server with 4 GB of RAM running Ubuntu 12.04.4LT which is also my personal web and fileserver.



Installing the license server on Ubuntu


Pixar provides license server software for Windows, Mac OS X and Linux. The linux versions are packaged as rpm. Since Ubuntu does not use rpm packages to install software it seems like Ubuntu is a dead end. But no worries, there is a way to get it all working.

First download the required software from the RenderMan website. I used the RH5 64 bit version which needs at least gcc 4.1. You need to convert this downloaded rpm package to a file type which Ubuntu can read. For this there is a tool called Alien.

To install Alien:
# sudo apt-get install alien
To convert the rpm to deb:
# alien NameOfThePackage.rpm
You should get similar named deb package when the program has finished running. The next step is to install the deb package which can be done with the following command:
# sudo dpkg -i NameOfThePackage.deb
Several files will be installed in /opt/pixar/PixarLicense-versionNumber/

So far, so good. The software is installed but it can't run yet as you need a license file. The documentation states that a program named LicenseApp will be invoked during installation of the license server but this seems only to be working on Windows and Mac OS X and not on Linux. This LicenseApp is used to get a license from Pixar automatically. Since the program does not get installed how is it possible to get a valid license?

You need to go to https://renderman.pixar.com/forum/entitlement.php. Follow the steps on this page and it will generate you a pixar.license file for you. You might need to use pixarhostid which can also be downloaded from the Pixar website. Put the downloaded pixar.license file in the directory above.

The next thing to be done is to start the license server with 
# sudo startPixarLicenseServer.sh
Et voila, your license server is up and running. If you want to make sure if it works, use a web browser to go to http://yourServerName:9010. If it displays your licenses then you're almost good to go.

The last thing you need to do is to put the pixar.license file in the root pixar installation directory of all of your client machines. This way PRMan knows where your server lives.



So where can I buy a license (or a bunch of them)?


If you live in Belgium or the Netherlands then you are in luck. You can contact me and I'll help you get one. You can do this trough Twitter or visit www.refractor.be. Feel free to ask questions too.

If you live elsewhere in the world, simply contact rendermansales@pixar.com

Thursday, October 11, 2012

RenderMan Studio 4 and RenderMan Pro Server 17




Last week Pixar released their latest instalment of RenderMan Studio and RenderMan Pro Server. This is quite exciting news so a good reason to write something about it.

Versions and Pricing for RenderMan Studio 4

Pixar used to have two product lines. The cheaper RenderMan for Maya which was a limited plug-in but with an embedded render license and the more expensive RenderMan Studio which had all the regular tools like Slim and "it" but needed a RenderMan Pro Server license to actualy render anything at all. Pixar has consolidated their two Maya plug-ins into one and has adjusted the pricing and functionality. The RenderMan for Maya product line no longers exists and only RenderMan Studio is now available. RenderMan Studio still has all functionalities but Pixar added an embedded render license. In combination with the price drop to $1300 a license this will give bigger companies a considerable expense cut and gives smaller companies the full set of tools for only $300 more than the old RenderMan for Maya license.

This new pricing gives smaller studios the opportunity to start building their RenderMan pipeline without the huge investment that it used to be.


New Features in RenderMan Studio 4

RMS 4 contains the following applications.
  • RenderMan for Maya 5
  • Slim 10
  • "it" 10
  • Pixar's RenderMan 17 (embedded version)
  • LocalQueue
  • Tractor 1.6
The two new applications are the embedded RenderMan 17 and LocalQueue. This last one is particularly handy for artists who like to render locally controlled by a render manager without having to set up an entire render management infrastructure. The embedded renderer is exactly the same as the Pro Server version so there is no difference if you render it locally or on the render farm.

There is a long list of improvements and efficiency updates but one of the more interesting features is "Phisically Plausible Shading". This is a new easy to use advanced shading and lighting workflow which creates very realistic results. Keep in mind that this new workflow is not compatible with the older RMS 3 workflow although the old workflow is still available if you wish to use it. You have to choose which workflow you like to use at the start of your project and stick with it.

Some interesting features of the new RMS 4 plausible shading workflow.
  • Raytraced and point-based global illumination: This is controlled with special global GI lights. It supports light linking so it is possible to use pre-computed point clouds for a set while rendering the hero objects with raytraced global illumination.
  • Image based lighting is now de-coupled from global illumination. The new RMSEnvLight is a bit slower to calculate but the quality has improved a lot.
  • New Area Lights: Area lights are quite hot nowadays. They provide realistic lighting and soft shadows.
  • Light Blockers: Although I used this feature many years ago as a custom light shader they have now included this as a standard. This is incredibly handy to subtract light in certain areas of your scene.
  • Subsurface scattering trough raytracing: No need to compute pre-passes anymore. This can be handy for relighting purposes as pre-passes can take up too much time.
To facilitate these features Pixar has added new shading nodes which are directly accessible in Maya or trough Slim. The general purpose surface shader supports layering which in my opinion is a very important feature.

New features in RenderMan Pro Server 17

RPS 17 is mainly a speed and efficiency update. I'll mention the features which I think are the more important ones. Hair and fur render up to five times faster and the new implementation of RSL has a 20% speed increase on average on shading calculations. There is also a volume rendering optimization and a new implementation of objects instancing.

Also new: RenderMan On Demand

Pixar also created a new online service called RenderMan On Demand. Whenever you have not enough render capacity it is possible to send your scenes to Pixar and let them render out your scenes. The service fee starts at 70 cent per core per hour.

Links:

Saturday, August 18, 2012

RenderMan Basics




I recently put my old graduation animation online (which you can watch on youtube: A Plug's Life). It was made back in 2001 and it was my first big project working with Maya and Pixar's RenderMan.

The other day I was asked in the video comments if I could write some tutorials on the use of RenderMan. That sounds like a great idea but before I want to come up with some hands on tutorials it is important to learn something about the RenderMan architecture.

I often hear that RenderMan is not suitable for small studios as it is too complex and is for tech heads and not artists. I beg to differ. RenderMan is a very efficient render engine and small studios which do not have a lot of render capacity can really benefit here by lowering render times. The shading tools are quite extensive and can give superb results without the need of any programming.


What is RenderMan?

First I like to define RenderMan. RenderMan is actually an API (application programming interface) and not a render engine. For a long time Pixar was the only one having RenderMan compliant renderer (as they invented the standard) called Photorealistic RenderMan or in short PRMan. People quickly started to call it RenderMan though and it has stuck ever since. Today there are more commercial render engines available which are RenderMan compliant like 3Delight.

Since Pixar's RenderMan is the industry standard (they say so themselves and honestly it is true), I will use their software to explain my examples.


RIB or RenderMan Interface Bytestream

Since PRMan is a renderer and Maya an animation package, there is need of a common language between the two. The API mentioned before is this language. Have a look at the following schematic.

The scene translator converts Maya data into a RIB file which the render engine understands.

The scene information from Maya is translated into a RIB file. This RIB file contains everything from geometry and information on which shaders are used to render resolution and certain render settings like shading rate. Since a RIB file is written in the common RenderMan language every RenderMan compliant renderer can interpret it and render it.

The RIB file can be displayed as an ASCII file, looks a bit like a programming language and is actually quite readable. We often opened up the RIB file to see where things went wrong when the renderer didn't give us the expected results.

In larger studios this RIB file is usually hacked to add in extra elements before the the final render is made.


RSL or RenderMan Shading Language

Shaders are render engine dependent. This means that when you go from one render engine to another you need to redo the shading. To tackle this problem between RenderMan compliant renderers, the standard provides a common shading language called RenderMan Shading Language. This is a simplified programming language to code shaders. These shaders are then compiled and used by the render engine.

Coding shaders is not what most artists want to do but since RenderMan Studio has a visual tool to create shaders called Slim, artists don't have to feel left behind. Understanding how to code shaders can give you a better insight in how shading works in CGI though.


RenderMan Studio

Pixar's RenderMan is available as a package called RenderMan Studio. It contains:
  • RenderMan for Maya (Pro)
  • Slim
  • it
  • Tractor
RenderMan for Maya is the core plug-in. It deals with the scene settings and takes care of translating the scene information into a RIB file. It comes with its own Maya menu and custom shelf.

Slim is the shading management tool. It is an external running program but can be connected to your Maya scene. Custom shading networks can be generated visually as well as trough coding in RSL.

"It" is the image tool. When rendering out your images you can do so to the Maya renderview but also to "it". "It" is much more flexible and allows even simple compositing trough scripting. It also allows the use of Look Up Tables and displays actual pixel values, something the Maya renderview is lacking.

Tractor is the render farm tool which queues and manages your renders. Not only can you manage your RenderMan renders but also other jobs like Nuke composites which you want to be calculated on the render farm.

RenderMan Studio comes with an embedded render license so even small VFX studios can get started straight away.


Links: