MILA New Features – May
As the MILA shaders evolve, features will be updated here when possible. These shaders are inspired by the Material Description Language and you can find more on that from the GTC conference here: nVidia Material Definition Language for Coordinating Materials (Thanks to Saycon for the link in the comments)
This latest release includes some more user-inspired changes like:
- A non-physical global clamp for reflection to eliminate hotspots (fireflies) from lights and interreflections
- Independent direct and indirect contribution sliders on components to create non-physical but art driven look
- Further moving of controls to global Quality String Options both for all MILA Quality as well as specific controls like “mila glossy quality” etc.
- Continued work on the Quality controls adaptability meaning fewer tweaks, just set the shader look and hit render
- Creating a Diffuse Reflection Detail Quality to replace Ambient Occlusion controls
- Moving controls off the shader components to make them clean and easy, a move toward greater simplicity for mental ray (to be continued)
- The elimination of unused or infrequently used controls
- *experimental* propagation of additional buffers in secondary rays
Clamp
The clamp option can be used as on or off (default is off) for controlling overbright highlights and reflections. It is a non-physical effect. This means it purposefully changes the energy in the render to avoid artifacts from insufficient sampling. This is usually caused by a very hot HDRI used to light a scene or a bright area light and the resulting indirect reflections.
This clamp option may also reduce render times because fewer samples are taken to resolve hotspots that cause variance in the image. The below image had an HDRI with a high value of over 7000 for the sun. Rendered at Quality 0.20 for Unified Sampling to amplify the effect of poor sampling. This also affects the resulting framebuffer contribution. Notice the areas that are not overly hot are maintained.
Direct and Indirect Contribution
A direct and indirect slider can be used to change the look of the material non-physically. Recall that Direct Reflection is the result of the light. Indirect Reflection is the result of the light from other objects in your scene. The easiest way to think of this is the direct diffuse is historically your diffuse pass and indirect diffuse is the indirect pass or “color bleed” from nearby objects reflecting light and measured by something like Final Gathering.
Below is an example with the effect of direct at 0.00 contribution and then indirect at 0.00 contribution on glossy reflection. You can adjust these independently to achieve a non-physical but pleasing artistic look in a material. This will also affect the resulting framebuffer contribution. These can be texture mapped as well for special effects.
Diffuse Indirect Detail
Diffuse Indirect Detail replaces the Ambient Occlusion controls with an On and Off switch globally, a distance parameter, and quality. Below is an example of on and off at default values.
Framebuffer Indirect Contribution Writing
*experimental* Additional buffers can now be rendered as seen in a reflection or refraction (indirect). This means you can get the matte color of an object written to its own buffer even if it is only seen in a reflected or transmitted ray. Below is an example where the turn blinker (indicator) writes its resulting color matte to the framebuffer despite being behind the lens cover of the light. It also contains information where it was reflected as well. This is useful to isolate and alter elements after rendering.
You can also pass the matte through another node like a rayswitch to further define the mattes generated through transmission (blue) or reflection (red) as seen below.
Now apply Glint!
Keep in mind that this object would be “baked” into the transmission framebuffer derived from the beauty. So changes after rendering would still be limited. This may also increase the render time as an extra color framebuffer is considered for anti-aliasing. If you wish to avoid that you can turn off “contrast all buffers” in the Quality Tab -> Framebuffer Rollout of your Render Settings.
Overall the goals for MILA are continued flexibility and simplicity based on MDL. Redundant and unused controls are moved and clarity in settings is being improved.
Why all of the “Quality” Controls?
Also notice the increase in controls for “Quality”. This is important since the underlying method or algorithm can be hidden under a simple control. This is already true of Unified Sampling and the Native IBL.
Why is this useful?
By hiding the method, developers can later change or improve it without introducing new controls or altering the old ones. This was true of the refinements made in Unified Sampling in 3.10. Artists can continue to work as the renderer improves without learning new techniques.
This is part of how mental ray will continue to simplify the workflow for users without sacrificing flexibility or speed. This will also make the integration of new features much easier in OEM products like Autodesk Maya since documentation and UI changes will be unnecessary with added improvements to existing features.
Unified sampling in the Autodesk 2014 products represents a first step toward mental ray use simplification. The layering shaders, etc,next
— mental ray (@mentalray) April 23, 2013
Posted on May 6, 2013, in Optimization, shaders and tagged layering, mila, shader, simplification of mental ray. Bookmark the permalink. 31 Comments.
Thanks, but still I’m not able to download and try this…
Are you a forum member? You have to make a post in one of the threads introducing yourself before you can get access to the development forum. This way they can avoid SPAMbots from swarming the board.
Yes, I became a member when I saw the first post on this blog about MILA, I already posted there but I’m not able to see the thread about MILA shader..
Can try again to introduce yourself here, make sure you’re specific enough that you don’t sound like a robot fishing for access. :-): I am not a bot
And then after awhile look here: Layering Library Download
Thanks for the suggestion, I will try again!
Hi David ! thanks for giving us good news about what’s next…btw the nvidia GTC On-Demand presentations are up…
– Easily Achieved Photorealism with NVIDIA Iray.
– The NVIDIA Material Definition Language for Coordinating Materials between Renderers.
Click to access S3560-NVIDIA-Material-Definition-Language.pdf
Great, thanks for posting these! might do a post pointing to the MDL information too. I haven’t seen the videos yet.
Thanks for the update!
And thank you for your very informative and technical blog!
Once again thanks for the excellent info David! Great stuff coming up for mental ray.
I like how you can render out a matte of the transmission and refractions. I’m in the process of developing a compositing workflow, that gives me the most power and flexibility, so far only small baby steps, if anyone would like to offer a hand, I would appreciate it 🙂
The headlight compositing looks really well.
What is the clamp level? Can I set it?
Not currently. Luminance 1 right now. There’s still the internal balance between complexity where users are trying to understand the exposure controls and a simple one-click that solves “most” issues. I suppose users could suggest a scalar control or even a color.
My initial thought is simply to control fireflies until a solution like improved MIS comes along (ideal). Basically the “firefly” filter in iray. Not sure I’d like artists trying to use that to control exposure instead of Nuke or Photoshop. Duplicates the lens shaders in that way anyway. This also solves the issue where users have been asking for a way to clamp the resulting framebuffers that a lens shader does not solve. This solves them in indirect reflections at least.
Except this breaks the shader dead in max, when you use physical lighting. Units are then in (by default) lux (ish), i.e. in the multiple thousands, routinely. “1” is black in max. So – completely, and utterly – unusable.
So far there have been no artifacts using it. But this is just a first try on the Beta to see where to go from here since it’s a new feature.
But yes, it’s not physical if that’s what you mean by “breaking it”. Since these are in Beta it’s up for changes and tuning. Can always comment on the forum what might be a good direction for the control.
At least for animation and VFX we occasionally require non-physical realism. Not because we really want to work that way, but because the client asks for something we are required to fake.
The headlight is so attractive, That is a compositing technique that is unfamiliar to me.
Was the clamp switch removed from Maya 2015 SP2 ?
No, should still be there. Make sure it’s spelled right from the MILA docs.
Found it. It’s only in the MilA mix node !
Oh the mix clamp, thought you meant the global clamp for fireflies.
What global clamp for fireflies ? You have peaked my interest ? 🙂
There’s a luminance clamp, it’s in the MILA documentation on the Autodesk website as well as a previous MILA post here.
I have the Mental Ray Layering shader docs, is it the same ? I’m looking for the Autodesk documentation version !
The docs on the Autodesk website are the NVIDIA documents.
I’m searching for the Documentation from Autodesk, I can’t find them, arghhh !
It’s under mental ray docs. Bookmark it. 🙂
Thanks, I’ll do the research 🙂
If the Indirect contribution for the base layer is set to 1.0, I assume this should turn on the mILA version of AO, without the need for me to bake out an AO map and blend it with the mILA shader, as far a I’m aware you can’t add an AO shader to mILA, unless you can though a custom layer ?
What is the Color and Colorfb represent in the Extra Color buffers, I can’t find it in the documentation ?
No, that refers to indirect light/reflection contribution. Keeping it at 1.0 is physically correct. Look at the section called: “Contribution: What’s an example of direct and indirect weighting?” MILA has built-in universal AO + Colorbleed available through string options, but coming technology will replace this feature in rendering. In the meantime an AO pass will work like before or you can render one on the GPU using the exposed options in Maya 2015.
I really shouldn’t bother with AO+Colorbleed string options because it’s around the corner that things are about to change, or I can if I want to have options ?
Pingback: The Layering Library (MILA) Part 2 | elemental ray
Pingback: Maya 2016, new features and integration | elemental ray