We’re on a project here where we load millions of points with PRTLoaders which Krakatoa does really well so far.
Still, we did find place to imrproove our workflow quite a bit.
When loading big PRT-Files over the network, there is a big slowdown in the viewport display percentage since it still needs to go trough the whole file and load only the desired particles.
In some cases loading every Nth particle is not really an option, since particels move from left to right, but it’s nescessary to see the whole cloud in the viewport.
So the idea came up to cache a percentage of the original PRT-file out as a proxy. then this proxy PRT-File gets loaded for working in the viewport for fast loading and display. And before rendering a script replaces all the proxy files with the original High particle count ones for the final render.
Now, this works fine, but still needs to be setup by script, ran every time before and after render, to swap bewteen proxy and highRes files. Working on a lot of shots, with many effects, this can add up in time and problems.
An idea would be to integrate this into Krakatoa’s Caching System and Render function. So basically while caching particles, there would be an option to write proxy files on the fly.
And when proxys are loaded, on render Krakatoa could swap the file internally and render the HighRes files.
Another thing we saw is that Max becoems very slow loading the same cache into different PRT-Laoders. Even after all the caches has been loaded, moving the prt’s in teh viewport is slow. Referencing or Instancing the PRT’s speeds it up a lot.
Not so when rendering though. The memory usage is exactly the same aswell.
here is a log info form a test render between instancing, referencing and copying one PRTLoader 7 times:
INSTANCES:
PRG: -----4/24/2012 12:07:47 PM--------------------------
PRG: Rendering frame 1000
STS: Section “Collecting APM Volumes”:
STS: Total 00h 00m 00.000s Called 1 times Avg 00h 00m 00.000s
STS: Section “Evaluating Particle Objects”:
STS: Total 00h 00m 00.234s Called 1 times Avg 00h 00m 00.234s
STS: Section “Retrieving Particles”:
STS: Total 00h 01m 52.430s Called 1 times Avg 00h 01m 52.430s
PRG: Rendering 275610776 particles.
STS: Section “Lighting:Updating Light”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Lighting:Sorting Particles”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Lighting:Calculating”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Rendering:Matte”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Rendering:Sorting”:
STS: Total 00h 00m 17.909s Called 1 times Avg 00h 00m 17.909s
STS: Section “Rendering:Drawing”:
STS: Total 00h 00m 07.909s Called 1 times Avg 00h 00m 07.909s
PRG: Finished rendering frame: 1000
STS: Section “Renderer::Open()”:
STS: Total 00h 00m 00.016s Called 1 times Avg 00h 00m 00.016s
STS: Section “Renderer::Close()”:
STS: Total 00h 00m 03.369s Called 1 times Avg 00h 00m 03.369s
STS: Section “Renderer::Render()”:
STS: Total 00h 02m 22.164s Called 1 times Avg 00h 02m 22.164s
PRG:
REFERENCES:
PRG: -----4/24/2012 12:12:23 PM--------------------------
PRG: Rendering frame 1000
STS: Section “Collecting APM Volumes”:
STS: Total 00h 00m 00.000s Called 1 times Avg 00h 00m 00.000s
STS: Section “Evaluating Particle Objects”:
STS: Total 00h 00m 00.031s Called 1 times Avg 00h 00m 00.031s
STS: Section “Retrieving Particles”:
STS: Total 00h 01m 53.272s Called 1 times Avg 00h 01m 53.272s
PRG: Rendering 275610776 particles.
STS: Section “Lighting:Updating Light”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Lighting:Sorting Particles”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Lighting:Calculating”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Rendering:Matte”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Rendering:Sorting”:
STS: Total 00h 00m 18.206s Called 1 times Avg 00h 00m 18.206s
STS: Section “Rendering:Drawing”:
STS: Total 00h 00m 07.956s Called 1 times Avg 00h 00m 07.956s
PRG: Finished rendering frame: 1000
STS: Section “Renderer::Open()”:
STS: Total 00h 00m 00.015s Called 1 times Avg 00h 00m 00.015s
STS: Section “Renderer::Close()”:
STS: Total 00h 00m 02.044s Called 1 times Avg 00h 00m 02.044s
STS: Section “Renderer::Render()”:
STS: Total 00h 02m 23.474s Called 1 times Avg 00h 02m 23.474s
PRG:
COPIES:
PRG: -----4/24/2012 12:24:59 PM--------------------------
PRG: Rendering frame 1000
STS: Section “Collecting APM Volumes”:
STS: Total 00h 00m 00.000s Called 1 times Avg 00h 00m 00.000s
STS: Section “Evaluating Particle Objects”:
STS: Total 00h 00m 00.031s Called 1 times Avg 00h 00m 00.031s
STS: Section “Retrieving Particles”:
STS: Total 00h 01m 53.163s Called 1 times Avg 00h 01m 53.163s
PRG: Rendering 275610776 particles.
STS: Section “Lighting:Updating Light”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Lighting:Sorting Particles”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Lighting:Calculating”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Rendering:Matte”:
STS: Total 00h 00m 00.000s Called 0 times
STS: Section “Rendering:Sorting”:
STS: Total 00h 00m 18.003s Called 1 times Avg 00h 00m 18.003s
STS: Section “Rendering:Drawing”:
STS: Total 00h 00m 07.784s Called 1 times Avg 00h 00m 07.784s
PRG: Finished rendering frame: 1000
STS: Section “Renderer::Open()”:
STS: Total 00h 00m 00.016s Called 1 times Avg 00h 00m 00.016s
STS: Section “Renderer::Close()”:
STS: Total 00h 00m 03.822s Called 1 times Avg 00h 00m 03.822s
STS: Section “Renderer::Render()”:
STS: Total 00h 02m 22.538s Called 1 times Avg 00h 02m 22.538s
Since I don’t really know much about programming, I don’t know if there is any place to improove anything here. I just found it interesting to mention, since the viewport performance speeds up a lot.
Thanks