This idea was born from the Understanding DMC Sampler thread - the issue came to my attention when reading through and seeing how many users (including myself at first) were having difficulty understanding how to optimize their render quality / time. It's clear that moving beyond the universal 1min / 100max AA V-Ray settings often yields the best results... but it can be very unclear (especially to newer users) exactly how to do it.
As V-Ray is now:
In example: A user has their scene's AA set to 1 min / 25 max, and in their render they're getting a somewhat noisy glossy reflection. So they up that material's subdivs from 8 to 16 thinking that might help clear up the noise - but under the hood of V-Ray, going from 8 to 16 (or even 20, or 25) makes no difference to the resulting render since this DMC value gets divided down to just 1 sample taken per AA sample. The user gets confused as to why increasing the value seems to have had no effect and has to resort to the documentation / forums... It's unintuitive.
So while we directly set the min/max of the Image Sampler (AA) for our scene, we only have indirect control over the DMC Sampler.
What I believe would be more ideal is for users to be able to set their Image Sampler (AA) according to scene requirements, and then be able to tune the DMC sampler in a logical and intuitive way - yielding the best possible render times and quality. What I had in mind as a solution would be this UI mockup:
So here V-Ray would have only 6 values to globally control all sampling:
Image Sampler (AA):
Min / Max / Color Threshold
DMC Sampler:
Min / Max / Noise Threshold
Along with those 6 values, there are 3 buttons in between the Image Samples and DMC Samples columns:
Furthermore, underneath the sampler values is a box that provides direct feedback as to how many samples will be taken per pixel of your scene according to the current settings.
Here's an example of what happens in the feedback box when one of the division buttons is enabled (it shows you the new resulting DMC samples amount):
With this setup we're given direct control over both the Image Sampler (AA) and the DMC Sampler.
All settings regarding sampling are directly shown to the user in a logical, intuitive, clear and uncluttered way.
Possibly confusing values like adaptive amount / min samples / etc are eliminated.
And most importantly - there's no longer instances where raising or lowering a value makes no difference to the resulting render.
Now all that's left to do is replace the Subdivs values found in lights / gi / materials with a simple Multiplier value that defaults to 1.0
If you need more samples in any specific place, raise the multiplier accordingly. Double the multiplier = double the samples.
Again - intuitive and logical - always having the expected effect.
Below is a mockup of the Material Editor, where the old DMC Subdivs value is now replaced with a Samples Multiplier value which just multiplies whatever your global DMC min / max values are.
Also next to the multiplier value is a box that gives you direct feedback as to how your multiplier currently relates to the global DMC min / max values:
Here is an example of when the reflection multiplier is changed from 1.0 to 2.0:
Good idea? Terrible idea? It's been kicking around in my head while waiting for renders to finish up. I'm sure there's still room for improvement, but I'd be interested to hear what the user base thinks of it.
As an added bonus - I think older V-Ray scenes could be opened and translated into this new sampling setup with a bit of math... and hopefully render very closely to how they did before.
Hope that all makes sense - let me know if anything needs clarifying!
As V-Ray is now:
- The Image Sampler's (AA) min/max completely dictates how many samples the DMC Sampler takes of a scene.
- The higher the Image Sampler's min/max values becomes, the lower the DMC sampler min/max becomes until you quickly reach only 1 DMC sample taken per AA sample.
- Because of this connection between the Image Sampler and DMC Sampler, you run into many instances where trying to control the DMC Sampler through various values throughout your scene ( subdivs / adaptive amount / min samples / global subdivs mult ) ends up having no effect on the resulting render - especially with higher AA values. This often makes optimizing the DMC sampler difficult and unintuitive.
In example: A user has their scene's AA set to 1 min / 25 max, and in their render they're getting a somewhat noisy glossy reflection. So they up that material's subdivs from 8 to 16 thinking that might help clear up the noise - but under the hood of V-Ray, going from 8 to 16 (or even 20, or 25) makes no difference to the resulting render since this DMC value gets divided down to just 1 sample taken per AA sample. The user gets confused as to why increasing the value seems to have had no effect and has to resort to the documentation / forums... It's unintuitive.
So while we directly set the min/max of the Image Sampler (AA) for our scene, we only have indirect control over the DMC Sampler.
What I believe would be more ideal is for users to be able to set their Image Sampler (AA) according to scene requirements, and then be able to tune the DMC sampler in a logical and intuitive way - yielding the best possible render times and quality. What I had in mind as a solution would be this UI mockup:
So here V-Ray would have only 6 values to globally control all sampling:
Image Sampler (AA):
Min / Max / Color Threshold
DMC Sampler:
Min / Max / Noise Threshold
Along with those 6 values, there are 3 buttons in between the Image Samples and DMC Samples columns:
- When either of the first two buttons are ENABLED - the DMC subdivs value gets divided by the Image subdivs value. (Old V-Ray behavior)
- When either of the first two buttons are DISABLED - the samples are taken as is - no division of values occurs. The Image Sampler and DMC Sampler are no longer linked.
- The last of the 3 buttons simply links the color threshold to the noise threshold.
Furthermore, underneath the sampler values is a box that provides direct feedback as to how many samples will be taken per pixel of your scene according to the current settings.
Here's an example of what happens in the feedback box when one of the division buttons is enabled (it shows you the new resulting DMC samples amount):
With this setup we're given direct control over both the Image Sampler (AA) and the DMC Sampler.
All settings regarding sampling are directly shown to the user in a logical, intuitive, clear and uncluttered way.
Possibly confusing values like adaptive amount / min samples / etc are eliminated.
And most importantly - there's no longer instances where raising or lowering a value makes no difference to the resulting render.
Now all that's left to do is replace the Subdivs values found in lights / gi / materials with a simple Multiplier value that defaults to 1.0
If you need more samples in any specific place, raise the multiplier accordingly. Double the multiplier = double the samples.
Again - intuitive and logical - always having the expected effect.
Below is a mockup of the Material Editor, where the old DMC Subdivs value is now replaced with a Samples Multiplier value which just multiplies whatever your global DMC min / max values are.
Also next to the multiplier value is a box that gives you direct feedback as to how your multiplier currently relates to the global DMC min / max values:
Here is an example of when the reflection multiplier is changed from 1.0 to 2.0:
Good idea? Terrible idea? It's been kicking around in my head while waiting for renders to finish up. I'm sure there's still room for improvement, but I'd be interested to hear what the user base thinks of it.
As an added bonus - I think older V-Ray scenes could be opened and translated into this new sampling setup with a bit of math... and hopefully render very closely to how they did before.
Hope that all makes sense - let me know if anything needs clarifying!
Comment