PROJET AUTOBLOG


blog.fevrierdorian.com

source: blog.fevrierdorian.com

⇐ retour index

Deex VRay Arsenal, a small tool that saves a lot of time (English Traduction)

jeudi 7 février 2013 à 10:03

VRay_Arsenal_tn.pngIt's been a while since I heard Damien (aka Deex) talk about his tool. I even had the opportunity to be on the same production when he thought the main line. When he told me that his tool was finally done, I could not help but ask him a license to test it out. :sourit:

The idea of this post is to present the main features of Arsenal. You will see that despite an approach that may seem a little too user friendly, this tool is a true production tool that make the job quite easier.

Let's go! :sauteJoie:

Notice: Before we start, I invite you to check Use V-Ray VFB in the VRay Common tab of the Render Settings panel:

VRay_Arsenal_012_useVRay_frameBuffer.png

This will give you access to a kind of special VRay Render View that allows you (in addition to a lot of things) to directly visualize passes (top left).

VRay_Arsenal_011_frameBuffer.png

VRay_Arsenal_sampleImage.png

My test imaget: A HDR from sIBL, and a lot of talent! :smileFou:

Installation

I thought installation was "special" in some part. This is not what we are used to see in common scripts.

First, you must install PyQt which most of the time is not an easy task (especially on Windows). Fortunately, an "easy" installer is available on the website. It's pretty cool!

The tool installation has been, designed to simplify the production integration (using environment variables), but can be quite daunting for people who are not necessarily used to play with their Maya.env file. Especially since I'm sure he would have been possible to have a "old school" install (scripts in the script folder, the shelves in the shelves folder, etc ... ), but this wouldn't have been so clean and it would have been a bit more complicated to deal with every update then with the current way, you just need to replace one folder. :laClasse:

The main window

When you launch it, you've got this:

VRay_Arsenal_001.png

We will talk about tabs bellow.

There is a spin button. Once ticked, Arsenal will "stay at the top". Else, it behave like a Maya window.

There also is a close button at the bottom I would not insult you explain the purpose. :reflexionIntense:

There is three tabs we will see in the order:

L'onglet Pass

On the top part, it's just Maya Render Layer (unjustly named "Pass" in the three buttons on the left). Click on one of these Render Layer select it the same way Maya does. It's just a time saver. For renderers that don't need complex passes you should not need them.

Notice you can do a Set global to on directly on your RenderLayers from this window (see the Maya doc).

Let's go now through the most interesting part. :popcorn:

Properties control

VRay_Arsenal_onglet_propertiesControl.png

This system is extremly fast to prepare your passes.

It's quite (quite) simple:

It's at once clear and also much faster than the "conventional" method aimed to manage these properties in grainy way on the groups/objects. Here, the system is reversed: You handle objects based on their property.

I find it much clearer. :redface:

Here is an quick explaination of the differentes propertties. For more details, refer to the official documentation.

Black hole

Objects having this property will not be shown in the render (their will be black) and their alpha will be empty.

Receive shadow: Black hole objects having this property will recieve shadows and store it in their alpha (example: a ground).

GI
Visibility
Shadows

Cast off: Les objets ayant cette property ne projetteront pas d'ombres. Cast off: Object with this property will not project shadows.

On fly control

VRay_Arsenal_002_onFlyControl.png

I'm not a big fan of terminologies used in this tab (even if it is VRay one). I'll try to be clear. :gne:

Light select

Here we will try to render passes by light or for every lights. This passes will be named as nameOfYourLightShape_normal, nameOfYourLightShape_diffuse, etc...

Arsenal settings

Here are my favorite options. Even if you can't really guess what they are at first. :siffle:

Matte control

VRay_Arsenal_003_matteControl.png

This one I also love it as it's simple! :dentcasse:

Principe is to generate "mask" passes. You know? RGB mask:

VRay_Arsenal_013_passMask.png

Roughly:

It's as simple I don't even know what to add! :redface:

Oh yes! This system bypasses a VRay limitation. Example:

It is black! Why? Because as VRay notice objects in group have an object ID, it doesn't show them in the pass.

With the Arsenal system, if you want to have a red group, it will be red!

FastControl

VRay_Arsenal_004_fastControl.png

This tab just gather main VRay options to quickly activate/desactivate them.

Quality tab

VRay_Arsenal_005_qualityTab.png

A big slider which change of color! :D

Here we are in the area that peoples who are not really render guru should enjoy. And yet, you will see it can definitely pleased peoples who are used to change their settings manually. :dentcasse:

The first thing to do to activate all of this is to click on Save actual settings which will save your current settings, and on Optimize to setup different expressions. From this point, you can start to change the main slider to vary render quality.

Preset Type

Preset Type are more about slider configuration than "preset". There is two Preset Type:

This two choices represent a majority of lighting case.

Presets are simple texte file that can be found in:

C:\Users\Narann\Documents\maya\deeXVRayArsenal\2013\win64\scripts\presets

This files, with very simple syntax, are used to drive ranges (min and max) of VRay attributes which will be then modified by your slider. If I don't talk nonsense, the relationship between the slider and settings it drive is logarithmic to avoid settings burn render times when you start to increase too much the slider. :grenadelauncher:

If the opportunity to create it own presets will probably doesn't interest occasional lighters, being able to set these min and max parameters manually can be very interesting for VRay gurus having their little habits. :papi:

Moreover, it would have been great to see this tool independent of VRay to drive, for example, Mental Ray. :baffed:

If you want to prevent Arsenal modifications on a specific attribute, just lock it.

Offset quality

Here we have a very good idea. Principe is to apply an offset to the slider for some parameters.

For example, my slider is suppose to be 50. I think sampling is a bit sensitive and increases the rendering time too quickly. However, I am satisfied with the rest... So, I just check the Image sampler then type -10 for the settings of the sampler applies as if my overall slider was 40! Brillant! :youplaBoum:

Optimize material(s)

Another interesting idea: You determine two extrem subdivision values (sampling), click Optimize material(s) button and Arsenal will determine the value to use based on Glossiness value of the material. More it's gloss, more you need samples.

Notice the checkbox right to LayerMode. If you check it before clicking Optimize material(s) button and you are in a RenderLayer (other than masterLayer) attributes will changed only on the current RenderLayer.

Optimize light(s)

I'm not sure this button is very useful. For now it only set every VRayLights Subdiv parameter to 5...

ToolBox tab

VRay_Arsenal_006_toolBoxTab.png

Here you will find small very specific tools.

Proxy

VRayProxy are a marvel. We used them on url=http://www.imdb.com/title/tt170...Day Of The Falcon/url to make horse animation cycles shifting speed.

Multi proxy importer

This button allows you to import multiple VRayProxy because, as surprising as it may seem, it is not possible to do this in standard... You need to import VRayProxy one by one...

Shader auto connect

When you export a VRayProxy, the "assignation slots" are created. Principle is to store, inside the proxy, shader assignations for reassign your shaders later.

Once VRayProxy reimported into your scene, you can apply a VRayMeshMaterial (FYI, it's already created when you import). This material will show different slots assignments for your proxy to connect your own shaders.

Shader auto connect button can automatically reconnect shaders based on their names, which avoids having to do it yourself. On proxy with tens or hundreds of assignments, it is rather convenient...

Ignore namespace

This box allows you to ignore shader namespaces of your scene when reassigning to the proxies. In principle, this allows you to have these shaders in external references (with a namespace) without have problems for reconnect using their names.

ID

Once again, here we have tools to quickly assign IDs to materials and objects.

Goal is then to release this IDs as passes to give to your compositing friends.

Material ID

VRay_Arsenal_008_materialID.png

VRay_Arsenal_014_materialID.png

Last point, to make this work, don't forget to create a Material ID pass (Render Element):

VRay_Arsenal_007_materialID.png

Object ID

Same as Material ID but at the objects level.

VRay_Arsenal_015_objectID.png

VRay_Arsenal_010_objectID.png

Notice difference with the ''Material ID'' pass.

Each object will have a differente id.

Once again, don't forget to create Object ID Render Element:

VRay_Arsenal_009_objectID.png

Material control

This part allows you to apply some key values on selected/all materials in one click.

A Trace option (Reflection/Refraction) to completly activate/desactivate raytracing would be interesting here. :dentcasse:

Lights control

It can't be easier: Apply a Shadow subdivs value to selected/all lights of the scene in one click.

Techniquement, comment ça marche? How it work technically?

Hahaha! The particularity of this tool is to not change your scene when you generate passes (Except Maya RenderLayers of course), when you do some "On the fly" stuff or even Matte.

But then? How is it doing? :gne2:

Well, it uses a feature of VRay I'll dream of seeing widespread throughout render engines as it increase pipeline possibilities: The Python API VRay Scene Access.

I quote the documentation as it's very clear:

The V-Ray scene access python API allows you to modify the V-Ray scene after it is translated by the V-Ray for Maya translator, and before it is rendered and/or exported to a .vrscene file. The scene access API allows you to expand the V-Ray for Maya translator by providing custom translation for constructs that are not recognized by V-Ray, or for modifying the scene before rendering without changing the original Maya scene.

Boum! Chaos Group guys are genius! :sauteJoie:

Roughly, it allow you to drive the renderer before (during?) the render. So we can imagine crazy stuff like generate scenes directly in VRay, on the fly, without using heavy vrscene file. For those who have worked with Renderman, it means no more generation of heavy RIBs you use only once. Here, you can control VRay using Python!

I asked for a similar feature on Nvidia ARC forum (formerly Mental Image) as I thought it was a great idea but I'm not sure it changes much. :triste:

So, Damien's tool uses it, and that's what allows him to keep a clean Maya scene and be able to act directly at VRay level, before rendering.

Conclusion

For having test the thing thoroughly I can assure you it worth every penny (69€! :bravo:).

What is missing:

OK, I sell a little completely the thing but yes: It's worth it! :aupoil:

Beyond the fact that I invite you to jump into this tool, I hope that, if you already have it, this presentation/tutorial will allow you to go further! :)

See you!

:marioCours: