I posted once before about wasted CPU time when rendering small, complex assets...or assets with small, complex detail.
Especially with the next gen workstations in April having 32 buckets just by themselves, it's a concern and just gets worse as more cores are added. DR rendering really makes it evident too when you have situations where 3 buckets finish rendering for a solid minute while 105 sit idle.
Here's an idea I had today of how to perhaps fix this:
Right now we have things like Object ID and Mat ID, well what if something like Bucket Priority (BP) was added as well as maybe Bucket Divisions (BD)?
The way I picture it working is that you'd assign progressively higher BP values to the complex objects or materials in your scene. VRay would prioritize these areas when rendering, placing buckets first on those pixels, then moving down the BP list until hitting 0, at which point it reverts to triangulation/spiral/etc.
On top of that, perhaps you can have a BD value assigned. 0 would leave the bucket size alone, 1 would apply a subdivision (32x32 becomes 16x16), etc. That way for REALLY complicated pieces of the scene, you could have the buckets split up to truly avoid any CPU idle time whatsoever.
How hard/worthwhile would you guys feel something like this would be to implement?
Especially with the next gen workstations in April having 32 buckets just by themselves, it's a concern and just gets worse as more cores are added. DR rendering really makes it evident too when you have situations where 3 buckets finish rendering for a solid minute while 105 sit idle.
Here's an idea I had today of how to perhaps fix this:
Right now we have things like Object ID and Mat ID, well what if something like Bucket Priority (BP) was added as well as maybe Bucket Divisions (BD)?
The way I picture it working is that you'd assign progressively higher BP values to the complex objects or materials in your scene. VRay would prioritize these areas when rendering, placing buckets first on those pixels, then moving down the BP list until hitting 0, at which point it reverts to triangulation/spiral/etc.
On top of that, perhaps you can have a BD value assigned. 0 would leave the bucket size alone, 1 would apply a subdivision (32x32 becomes 16x16), etc. That way for REALLY complicated pieces of the scene, you could have the buckets split up to truly avoid any CPU idle time whatsoever.
How hard/worthwhile would you guys feel something like this would be to implement?
Comment