Hi all,
I would like to discuss some issues with the PRT Loader and pick up your brains in hopes to get the best possible design for this feature.
The PRT Loader has two main features - preview the particles in the viewport and provide particles to the renderer. Thus, it has two sets of settings - Viewport and Render.
Originally, the Viewport % value was set to 1.0% and the Limit was enabled at 100K. After using it for a while, it felt inconvenient because the Limit would cap parts of the data and after a certain frame I would be missing half of the particles generated…
On top of that, all Render settings are using by default the Viewport settings, meaning that if the Viewport was set to 1% and 100K limit, the renderer would use these settings, too, which wasn’t exactly the expected behavior.
In the current Beta build 0.9.6, the Viewport % is set to 100% and Limit is OFF.
This is also not optimal because if you are loading 20M+ particles, it might take a while to display in the viewport…
The main reason the Render Settings are using the Viewport settings by default is that the Percent value is ANIMATABLE, which means that you can create special effects by keyframing it, for example animating the particles from 0 to 100% for an object to appear or from 100 to 0 to disappear. When the particles are taken from a geometry primitive, this also allows for nice “building” effects as the vertex order usually goes from bottom to top.
But we also realize that this is a SPECIAL CASE and not the typical usage of the Viewport % parameter, and that the user can also independently animate the Render Percent value if he wants the same effect while keeping the Viewport count low.
For the next build, we are thinking about changing these settings to 1% for Viewport, Viewport and Render Limits OFF, Render set to “Load First N Particles” instead of “Load Using Viewport Settings” and of course 100% in Render.
It is also important to note that the “Load Every Nth Particle” mode is MUCH SLOWER than “Load Firth N Particles” as it has to read through the whole file while the latter only has to read a portion in the beginning. Thus, setting the default Viewport mode to “Load First N Particles” would be a better default for scrubbing through an animation, but in many cases would cut out large parts of the particle cloud esp. in cases where particles are added to the flow over time or when using geometry vertices as particles.
Thus, the current default “Load Every Nth Particle” shows a better representation of the cloud at costs of speed.
We would love some feedback regarding this - what should be the default behavior?
In the future, we might let the user define a set of defaults in an INI file and enforce those private settings on creation as we obviously cannot please everyone.
Thanks in advance for your help,
Borislav “Bobo” Petrov
Technical Director 3D VFX
Frantic Films Winnipeg
P.S. I posted some known bugs to the download area. These include the fact that the PRT Loader’s icon and particles are not selectable via hit-testing yet and that the particle size might be inconsistent.
Please keep in mind this is just the very first incarnation of the Loader - we will do our best to make it usable.
Are you talking defaults, or removing the parameter entirely?
For me, “every Nth” is not useful, since my particles are only “ordered” maybe 5% of the cases. Most of the time I make a whopping huge cloud at frame 0 and play from there. So my particles are fully random anyway, so the front 10% of the PRT and the last 10% would look very similar.
My gut feeling on this is to default to the viewport showing a very small percentage, like 1%. I don’t want to load up a PRT and wait a long time for my system to unfreeze just so I can click the spinner and roll it back to 1%, however I don’t mind some particles popping up right away and letting me run the spinner up to 100% if I know what I’m doing.
But don’t do what Pflow does and have the viewport default to 50%. It’s not much faster, and it confuses you since you see a crapload of particles and think that’s what the results in render are. At least with 1%, I know immediately that I’m seeing an Nth particle proxy of the render settings.
So my vote is to do the fastest, least likely to make your machine choke things by default and let the use dial in “slowness” as they see fit.
Are you talking defaults, or
removing the parameter
entirely?
I was talking a button where you can press it and the current settings become default settings for future new loaders. So if you want 0.1% viewport by default, you could set that, hit a button and make it the default.
But at this point, it looks like we found a better solution for the defaults and try to go with them.
For me, “every Nth” is not
useful, since my particles are
only “ordered” maybe 5% of the
cases. Most of the time I
make a whopping huge cloud at
frame 0 and play from there.
So my particles are fully
random anyway, so the front
10% of the PRT and the last
10% would look very similar.
We will probably make “First N” the default as it is faster.
My gut feeling on this is to
default to the viewport
showing a very small
percentage, like 1%.
This will be the default in the next build.
1% OF THE RENDER AMOUNT, not 1% of the particles in the file as it was before. So if you reduce or animate your render %, the viewport will always follow 1% of that value.
But don’t do what Pflow does
and have the viewport default
to 50%. It’s not much faster,
and it confuses you since you
see a crapload of particles
and think that’s what the
results in render are. At
least with 1%, I know
immediately that I’m seeing an
Nth particle proxy of the
render settings.
My thoughts exactly. I HATE that 50%.
So my vote is to do the
fastest, least likely to make
your machine choke things by
default and let the use dial
in “slowness” as they see fit.
We did just that yesterday. :o)
THANKS for the feedback!
Cheers,
Borislav “Bobo” Petrov
Technical Director 3D VFX
Frantic Films Winnipeg
Couple things I’d like to ask for…
Is there a way the dot/splat or whatever can be changed in size? Even if it’s just integer pixel diameters.
The Impressionist look is neat, but not very accurate.
Second, could we get at least a global opacity, perhaps based on the Visibility track? Per-particle would be better, but I could live with global if that’s all I could get.
- Chad
Couple things I’d like to ask
for…
Is there a way the dot/splat
or whatever can be changed in
size? Even if it’s just
integer pixel diameters.
Already logged as defect 3922.
We hope to fix it ASAP.
Second, could we get at least
a global opacity, perhaps
based on the Visibility track?
Per-particle would be better,
but I could live with global
if that’s all I could get.
Visibility track is already used as density multiplier, so if you animate from 0.0 to 1.0, your particles should “appear”.
This is currently broken for the PRT Loader though, it either turns them on or off but does not scale yet. Logged as defect 3914.
I hope I understood your request correctly though…
Cheers,
Borislav “Bobo” Petrov
Technical Director 3D VFX
Frantic Films Winnipeg
I mean for viewport, not for render, though if it’s broken for render, then, sure, that could be fixed too.
I would like best if the splats/dots could have individual viewport opacity, but global opacity would be suitable enough for many situations, especially since I sometimes scale “spacial density” instead of “opacity density”.
FYI, I tried DX9 vs OGL vs Software. The DX9 looked like a 5x5 dot, while the OGL looked like a 3x3. Odd?
- Chad
I think this issue - increasing point size - is very interesting and worthy of exploration. Probably we could have a pixel size modifier?
In the viewport or render?