3Dickulus / FragM

Derived from https://github.com/Syntopia/Fragmentarium/
GNU General Public License v3.0
344 stars 30 forks source link

progressive resume broken #145

Closed claudeha closed 4 years ago

claudeha commented 4 years ago

Describe the bug Previously, pressing play on a stopped progressive render would resume from the currently accumulated subframes. Now (bug) pressing play restarts rendering from scratch, even if nothing has changed that needs rerendering.

To Reproduce Steps to reproduce the behavior:

  1. Activate Progressive mode.
  2. Press Play
  3. Press Stop
  4. Press Play
  5. BUG: restarts rendering from scratch

Expected behavior If nothing (uniforms, keyframes, etc) has changed since last progressive stop, play should not restart.

Desktop (please complete the following information):

Additional context Workaround is to use the subframe limit number box as a soft-Stop option, increasing it when you want to render more subframes, never actually clicking Stop.

3Dickulus commented 4 years ago

the fix I committed fixes the issue for frags that use a buffer shader, now when using a frag that does not use a buffershader for progressive rendering the stop button doesn't work.

A frag that does not use a buffershader ( anything using Fast-Raytracer.frag ) renders all at once with no accumulation, subframes without a buffershader is just rendering the same thing over, the only exception is a frag that uses front/back buffers like Reaction-Diffusion.frag, it does calculating between the front and back and updates the front every 30 iterations.

propose leaving it this way because it fixes this issue it updates the FPS on a static view (no buffershader) it's harmless unless the FastRaytracer.frag that you've been modifying isn't so fast any more it still allows a frag that uses front/back buffers like Reaction-Diffusion.frag to work as intended

end result: this issue is fixed but now when using a frag that does not use a buffershader for progressive rendering the stop button doesn't work, continues rendering up to maxsubframes.

caveat: if you don't like the stop button not working or needless rendering then just set maxsubframes at 1