Refitting particles
Ok, I’ve reworked the particle system to fit into the new geo. In the process I also further optimized the entire solution by saving out prerendered geo-sequences of the wave surface. The source-surface for the particles is now carved into a narrow strip at the lip of the wave which further optimizes processing.
I’m now easily rendering around 400k particles with the pasted wave surface at 1024×576 in on average 2 minutes a frame. This particle count can go up a lot more before I get into any rendering progress as the particle render part of this isn’t the biggest chunk of the time. I must admit I’m not rendering deep shadows on the particles yet and the surface shader is very basic currently (no subsurface scattering and such).
But still its looking promising in terms of render times so far.
I encountered one little challenge during these changes (which were already visible in previous renders). The wave lip was moving so much between frames that the particles where coming up in strips with an empty space in between. This can be solved by increasing the oversampling on the particle system. However, this causes problems with the prerendered particle source geometry as that only contained geo per frame. I quickly found that by taking the increment on the geo render down to .25 I could actually render 4 steps per frame (I did have to use $FF to generate the ‘frame’ number in the file name in stead of $F, as this generated the fractional ‘frame’ numbers). The file sop that loads the geo again also set to $FF for the ‘frame’ numbers then reads the ‘sub’ frames when requested by the particle system and Bob was my uncle. So, this way I combined the performance advantage of pre-rendering the geo while still having higher oversampling to get the proper generation of particles.
You might note that the particles seem to be a lot more short lived than in previous renders… this is a preperation for the next step in the lip-spray system. I’m going to be instancing finer mist particles from the lipspray that further moves up and over the wave.
Render included:
WaveTest7
Cheers,
Erik