# Trnka

Members

7

1. ## Mantra inner workings - How does sampling work?

Hello friends, I was using Arnold for a long time while also playing with Mantra, but until now I never really had a time to dive deep to Mantra. The thing I really adore about Arnold is that in its settings it has this beatiful "Samples calculator". It seems just like a small detail but in my personal experience it was a great help for optimizing heavy renders. So few weeks ago I decided that I would try to create some similar calculator for Mantra. At first I implemented it by Arnold example which works like this (I'm not 100% sure with the equations but in my tests they work ): Camera (AA) Samples = pow(Camera (AA) samples parameter, 2) Diffuse Samples (Min) = pow(Camera (AA) samples parameter, 2) * pow(Diffuse samples parameter, 2) Diffuse Samples (Max) = pow(Camera (AA) samples parameter, 2) * pow(Diffuse samples parameter, 2) + (Diffuse depth parameter - 1) * pow(Camera (AA) samples parameter, 2) Specular Samples (Min) = pow(Camera (AA) samples parameter, 2) * pow(Specular samples parameter, 2) Specular Samples (Max) = pow(Camera (AA) samples parameter, 2) * pow(Specular samples parameter, 2) + (Specular depth parameter - 1) * pow(Camera (AA) samples parameter, 2) Transmission Samples (Min) = pow(Camera (AA) samples parameter, 2) * pow(Transmission samples parameter, 2) Transmission Samples (Max) = pow(Camera (AA) samples parameter, 2) * pow(Transmission samples parameter, 2) + (Transmission depth parameter - 1) * pow(Camera (AA) samples parameter, 2) Total (No lights) Samples (Min) = Sum of all min samples above Total (No lights) Samples (Max) = Sum of all max samples above But soon I realized that Mantra does not work this way. (Well yes, it was silly to think it works the same way ). So after reading a lot about how sampling works in Mantra and talking to my friends I came up with this calculator: ray_count_calculator.hdanc Which counts ray count like this: Camera Samples (Min) = clamp(Pixel samples X parameter, 1, ∞) * clamp(Pixel samples Y parameter, 1, ∞) Camera Samples (Max) = clamp(Pixel samples X parameter, 1, ∞) * clamp(Pixel samples Y parameter, 1, ∞) Diffuse Samples (Min) = clamp(Pixel samples X parameter, 1, ∞) * clamp(Pixel samples Y parameter, 1, ∞) * Diffuse samples parameter * Global multiplier parameter * Min ray samples parameter Diffuse Samples (Max) = clamp(Pixel samples X parameter, 1, ∞) * clamp(Pixel samples Y parameter, 1, ∞) * Diffuse samples parameter * Global multiplier parameter * Max ray samples parameter Reflection Samples (Min) = clamp(Pixel samples X parameter, 1, ∞) * clamp(Pixel samples Y parameter, 1, ∞) * Reflection samples parameter * Global multiplier parameter * Min ray samples parameter Reflection Samples (Max) = clamp(Pixel samples X parameter, 1, ∞) * clamp(Pixel samples Y parameter, 1, ∞) * Reflection samples parameter * Global multiplier parameter * Max ray samples parameter Refraction Samples (Min) = clamp(Pixel samples X parameter, 1, ∞) * clamp(Pixel samples Y parameter, 1, ∞) * Refraction samples parameter * Global multiplier parameter * Min ray samples parameter Refraction Samples (Max) = clamp(Pixel samples X parameter, 1, ∞) * clamp(Pixel samples Y parameter, 1, ∞) * Refraction samples parameter * Global multiplier parameter * Max ray samples parameter Total (No lights) Samples (Min) = Sum of all min samples above Total (No lights) Samples (Max) = Sum of all max samples above While using premise that these parameters in Arnold and Mantra influence the same things: Arnold Camera Samples = Mantra Pixel Samples Arnold Diffuse Samples = Mantra Diffuse Quality Arnold Specular Samples = Mantra Reflection Quality Arnold Transmission Samples = Mantra Refraction Quality Arnold SSS Samples = Mantra SSS Quality But there is a catch: In Arnold if you set Diffuse Samples to 0 you will get black diffuse indirect pass In Arnold if you set Specular Samples to 0 you will get black specular indirect pass In Mantra if you set Diffuse Quality to 0 you still get samples in diffuse indirect pass In Mantra if you set Reflection Quality to 0 you still get samples in reflection indirect pass So I think we can be sure that Mantra pixel samples fire also diff/refl/refr/sss samples - so when having diff/refl/refr/sss parameters set to 0, their corresponding rays cant be 0 (but I really don't know and can't find out how much of them is fired) Also pay attention to the clamping of pixel samples - in my tests pixel samples parameters were always clamped like this: clamp(Pixel samples parameter, 1, ∞) - when using values lower than 1 the result was always the same as when using 1 This catch made my calculator useless It seems that Mantra fires all kinds of rays even when using pixel samples only while Arnold does not. I personally did not expect this behavior and as far as I know it is even not documented. (Or at least I could not find it). I spent few days trying to figure out how these parameters could relate to each other but I did not find any good solution. So in my frustration I decided that it would be probably better to ask you guys if you did not try to create some calculator like this before or to find out how all Mantra parameters relate to each other I think it would be a great help for all Mantra users to find out how Mantra works "under the hood" Thank you very much for any advice and have a nice day.
2. ## Specular antialiasing / Anisotropic bump antialiasing / Bump to roughness

Hello friends, Today I watched Custom Shading in Game Trailers presentation from Sergio Caires (FMX 2018). The thing which really caught my eye was topic about anisotropic bump anti-aliasing (or specular anti-aliasing). This topic is presented at about 45:00 in the video. Please has anyone tried doing something like this? Do you have any hints how to do this kind of effect inside Houdini? I did not understand it good enough from the presentation, to implement it myself. Thanks for any kind of advice and have a nice day Link to the video:
3. ## Dirty effect on principled shader

Also have a look at Dirt Mask VOP

5. ## Mantra inner workings - How does sampling work?

Sorry for late reply, by accident I did have notifications turned off for this topic and I did not really noticed the answer. What I like about Arnold samples count "calculator" is that you can extrapolate rendering time from these numbers. Or in other words when you change your AA / Diffuse / Specular/ Refraction... samples count, but your total samples count remains roughly the same, (in my personal experience ) you can expect really similar or nearly same rendering times, when you have 2-times bigger total samples count you can expect roughly 2-times longer rendering time etc. I was just wondering if there is some way to extrapolate rendering times the same way as in Arnold from Mantra settings but it seems that it is pretty difficult to find out how all these settings in Mantra exactly contribute to rendering time. Maybe just by trial and error but it is not that elegant. Please do you have some tips and tricks how to extrapolate rendering time from Mantra settings?
6. ## Specular antialiasing / Anisotropic bump antialiasing / Bump to roughness

@davpe I was thinking about it a bit and I am wondering if this method is only useful when using (image) textures as bump maps or also when using procedural bump maps (noises etc.). Since in the second case there is no mip-mapping, it should not create these artifacts as mip-mapping does or no?
7. ## Hable and ACES tonemapping

Hello Oskar, thank you very much for such an interesting thread, may I ask you, which tonemapper do you prefer? And how did you generate these LUTs? Thank you very much
×
• Donations