Forum

Blending a 120fps stream down to 60fps?


#1

Hi all,

I’m experimenting with a real time light painting / trails patch. In order to get as smooth a trail as possible, I’m thinking it’d be nice to stream the light mask layer at 120fps, despite the patch ultimately running at 60. (My camera is capable of both.) In theory, I’m thinking it should be possible to run a patch at 120fps, then blend every second frame into the previous one and use that as a 60fps stream. I’m not really sure how to do this in VVVV though, and for some reason VVVV is locked to 60fps despite vsync being disabled and both background and foreground being set to 120 fps in MainLoop. I don’t remember this always being the case but I’m not sure how to fix it.

Any thoughts on how I could achieve something anything like this?


#2

Hi, as far I know, the maximum framerate the patch with rendering is running is capped by the refreshrate of you monitor. For example to run Oculus patches at 75Hz we’ve got to get main screen capable of running at at least that speed.
I would be more that happy if someone can show me I’m wrong :).

Simple experiment with DX11 Render window, timing node, monitor set to 60hz and Mainloop to 120fps does not indicate the problem I mention. Timing node displays 120fps framerate.

How about texture sharing from a second process (start vvvv using /allowmultiple command line param), would that help?


#3

Yeah, I ended up working out an adequate solution and learning a bit more about how VVVV handles framerate stuff, just hadn’t gotten around to posting about it.

I was using dx9, and dx9 renderers have a hidden setting called “Sync-Mode” which syncs the renderer to a specific interval. By default it’s set to the refresh rate of the monitor, and I found that I could run VVVV at a higher internal framerate by setting it to “immediate present”. Thanks Documentation!

Dx11 doesn’t seem to have this issue, but I still wanted to be able to calculate some effects at 60fps so they didn’t slow down my 120fps streaming. I experimented with a few approaches, but the best one seems to be to calculate the effect in a separate instance at 60fps then texture share into the 120fps instance, rather than the other way around.

Seems to be working as I want for now.


#4

This are heart warming words, somehow. A lot of effort goes into those walls of text.