Hi Ronan, What a perfect file to warp and twist a render's performance. Super simple geometry with no surface complexity what so ever. Simplistic lighting scenario. Perfect set-up to turn Mantra's PBR defaults sideways but if you know a bit about how to approach such a scene, you can dial it in and get super reasonable render times out of Mantra. Just looking at your file, yeah you had the primary samples jacked which is what I find most everyone does when they first try to get clean PBR renders. I really want to have a reorganized interface in a Mantra ROP tailored to just do PBR. My approach with PBR and Mantra these days is to set the primary Pixel Samples as low as you can to resolve the geometry detail itself and if there are fine displacements or high frequency textures, then and only then will I start cranking up the primary Pixel Samples if I can't resolve that "primary" detail. I call these "primary" as they are the bare minimum that Mantra will fire at the given bit of surface under the current pixel being shaded. These are the first set of rays that find geometry (including fine curves and displacements), resolve geometric detail and run shaders to draw texture maps and procedurals. After that, secondary rays are fired at the same bundle amount set by Pixel Samples when the noise threshold hasn't been met. The Min Pixel Samples I rarely set above 1. The Max Pixel Samples defaulting to 9 I don't change unless I start lowering the noise threshold below 0.02 or 2 percent variation in the returned pixel samples. The max Pixel Samples is a maximum threshold for number of Pixel Sample passes to perform in order to reduce the noise to your given noise tolerance. Either you run out of secondary ray multipliers on the Pixel Samples or you reach your noise threshold. When rendering with PBR, you must set the gamma to 2.2 or use a proper sRGB lut to compensate for your monitor OS settings. It assumes that your images will be color corrected with a gamma 2.2 set. If not, you will adjust your lights for things to look good and that will cause your darks to be artificially too dark with the result being much more noise. I wonder if this given render engine is Fisher Price'ing the linear lighting process by doing this all behind the scenes for you. I won't tell you the amount of heat we'll take in Support if we ever tinker toy'ed the interface... Pretty simple. Chase the rays in the darks where there is more noise and fire as few rays for the areas swimming in lots of light. Now for some tests to see this in action. In the images below, look at the shadow under the dump as well as the yellow of the dump on the rear as trouble areas where the noise seems to be most obvious. My test mule is a MacBookPro core-i7 2.3GHz 4 cores with 8GB of memory. I always set the Color Space on the Mantra ROP to Gamma2.2 to help get PBR chase more light rays in to the dark occluded regions. I also left the Diffuse bounces to 3 as you have set them and no indirect Photons used. Time: 3m01.374s Pixel Samples: 3x3 Min Ray Samples: 1 Max Ray Samples: 9 Noise Level: 0.01 (one percent) Notes: By rendering out the "level" export plane, I can see that with noise level set to 0.01, in the dark regions the trace level hit around 9 so the number of rays were 9*3*3=243 in the dark shadow areas. On the more direct illumiated surfaces, it was at 1 or 2. The Ray Variance Aliasing allows you to use the noise percentage threshold to have PBR chase rays where you want them to go. Time: 3m29.139s Pixel Samples: 3x3 Min Ray Samples: 1 Max Ray Samples: 10 Noise Level: 0.01 (one percent) Notes: This next render has the Max Ray Samples bumped up only one stop and the render time is a bit longer. This tells me that the previous image hit the Max Ray Samples before the noise threshold was satisfied in more areas than this render. In this image, with the extra bundle of 3x3 primary samples, the noise threshold caused another multiple of rays to be cast in the dark shadow regions and most likely the noise threshold was met in more areas of the image. Time: 9m46.193s Pixel Samples: 3x3 Min Ray Samples: 1 Max Ray Samples: 32 Noise Level: 0.01 (one percent) Notes: One third longer render from the previous even though the Max Ray Samples is set to 32. I am now pretty much guaranteed to have reached my specified noise threshold limit of one percent (0.01). At 9m a render, this should be the absolute longest render time for this kind of an image. If you are getting anything longer than this with the given hardware, then you jacked the pixel samples too high. The only thing reducing the noise now is to reduce the noise threshold even further or investigate the use of indirect photons to help with calculating irradiated light and reduce secondary bounces. Time: 4m36.849s Pixel Samples: 2x2 Min Ray Samples: 1 Max Ray Samples: 32 Noise Level: 0.01 (one percent) Notes: So now lets put the knowledge to a test. Given that this is a real simple model with little if any geometric detail and the edges are all fairly smooth, we should be able to reduce the primary Pixel Samples and still get a nice clean render. Reducing the primary pixel samples to 2x2 in this specific image with very little surface detail really doesn't have much effect on the final image quality and with Max Ray Samples at 32 and noise at 1 percent, still gives you very nice results with indirect lighting. Now if this model had displacements or fine highly detailed textures, I'd probably have to bump up the primary Pixel Samples to 4x4 or 5x5. You just gotta play with it. Time: 4m58.302s Pixel Samples: 2x2 Min Ray Samples: 1 Max Ray Samples: 32 Noise Level: 0.005 (0.5 percent or half of the above images) Notes: Pushing things to the logical limit, let's reduce the noise threshold in half and see if we can chase more pixel sample rays in to the shadows to clean things up there. As you watch the render progress, the nicely lit areas render quickly but when the bucket lies in an area of shadow, things slow down as they should. Now if you naively jacked the primary samples, you'd get this even overbearing overhead. Remember, chase the noise! So the render time didn't increase that much indicating that we are bumping up against that 32 Max Ray Sample threshold so now you can carefully increase the Max Ray Samples until the noise in the darks are gone with minimal increase in render times on top of this. Time: 3m21.05s Pixel Samples: 2x2 Min Ray Samples: 1 Max Ray Samples: 32 Noise Level: 0.005 (0.5 percent or half of the above images) Added Indirect gilight to the scene to help cache indirect light at default settings Notes: Same settings as the previous render but significantly faster, smoother and with more indirect light. Sweet. Adding the indirect light does have an additional overhead in calculating the photons but not that bad. It does become invalidated in the IPR viewer if you change a light or a surface parameter, but within reason when tweaking subtle light values and colors, you can plow ahead knowing that the indirect photons are not quite perfect but close for tweaking. Mistakenly many think that using indirect Photon Maps is primarily for speed with less noise. Well yes and no. I use them primarily to get at the final total limit indirect diffuse contribution in the scene. Note the yellow in the shadow under the dumper and red under the cab in this render. You'd have to crank the indirect ray bounces much higher to get this otherwise. So this is one way to dial things in with PBR. First get the primary samples to resolve the primary direct lit surface detail to where you want. Then add indirect lighting by managing the max ray samples and the noise level on top of the base Pixel Samples. Simple and effective.
    • Like
    35