pbrt-v4 icon indicating copy to clipboard operation
pbrt-v4 copied to clipboard

GPU less efficient that CPU rendering scenes with largue amount of 'sphere' primitives

Open pbrt4bounty opened this issue 6 months ago • 3 comments

beach.7z.zip

Lately, I added support for Blender Point Cloud objects in my Pbrt4 integration. The approach to render this scenes is create a sphere primitive for each point. When I try to render in CPU, the performance is the expected but, the render never start when I try to use GPU with the same scene. The total amount of spheres is around 500.000 Any clue about the causes and, if are possible, any best approach to render this in GPU? Maybe define one unique sphere and use instances? @mmp ??

pbrt4bounty avatar May 30 '25 13:05 pbrt4bounty

Interesting. I don't have any theories for why that would be. Where in the code is it hanging? I doubt that instancing would make much difference; it might end up using more memory.

mmp avatar Jun 04 '25 21:06 mmp

Yeah.. instances don't help really.. This is the .log in Verbose level

point-clouds.log

Image Edited: around 250000 spheres is fine, with 395000 is stopped in this point.. "Starting to consume top-level GAS futures"

pbrt4bounty avatar Jun 05 '25 03:06 pbrt4bounty

Hi.. still fighting with this issue. I have planned to render a liquid animation where those spheres are used to render the water foam. The two alternatives I have are:

  • Render less spheres, that does the least realistic scene do
  • Use CPU.. that makes the render much longer
Image

pbrt4bounty avatar Jul 09 '25 09:07 pbrt4bounty