how to lock frame rate?

Hi,

we’re running 3 processes talking to each other, the Render and Logic are running above 60, the Skeleton around 55-60.

I would like to sync the frame rate, because as our character moves you can see sync lines (i.e. half screen being drawn with the next frame, half with the previous frame) that it would be nice to eliminate.

In the past, I’ve noticed that on other projects you guys were able to lock the frame rate to 30 fps. I figure I can’t lock it at 60 since the Skeleton is not up there, but how can I lock it anyhow? I turned on the sync in the Nvidia control panel, but I still don’t see the 3 cores stabilizing on a uniform frame rate. Can I tell them somehow to play at a constant 30 fps?

thanks,
dani

You can make Touch play at 30 fps by changing the framebar framerate. (Push the square in the bottom right of the playbar and then press the + button.)
Im not sure how well stuff will behave if all of your animation clips are at 60 fps though.
However this won’t help the tearing you are seeing. The tearing isn’t caused by the Touch processes not running in sync with each other. What you are seeing is horizontal tearing, this is what happens when vsync is off, or it isn’t working. Horizontal tearing happens because the graphics driver is copying the frame’s image onto the output framebuffer at the same time the monitor is displaying the image. vsync times this copy operation so that it happens in sync with the monitors refresh rate, so the tearing isn’t visible.

If you have vsync off (either though the command or through the nvidia control panel) you will always see this tearing. Its a tradeoff between quality and speed.

If you have vsycn on and are using a single monitor but are still getting tearing, then your monitor doesn’t respect correct video timing signals. I’ve seen a few LCDs that have this problem.

Now here’s the part you aren’t going to like. Currently nvidia’s drivers can’t correctly sync to two different monitors connected to the same computer (that is, two different monitor models). They can only correctly sync to one of them. Which one is decides to sync to is random.
This is a big issue that I spent a lot of time talking to nvidia about and trying to find solutions. In the end the only solution I could get was a driver hack for the Quadro 5600 that makes it so the monitor that contained the bigger Touch window (the right monitor) would be the one that is synced, while the left monitor wasn’t synced. I tried but was unable to get them to port this fix to other cards like the 8000 series. So if this is the issue you are having and you need to fix this, you’ll need to move to a Quadro 5600. (After this fix we wondered if the Matrox Dualhead2go was a possible fix to this also, but haven’t tried it out yet).

There is a Touch sync issue you may need to deal with if you find your character stuttering even though Render is still running fast, but we’ll talk about that if you run into it.

1 Like

that’s interesting to know.

I’m not sure changing the project frame rate to 30 would work, not so much for the animations, which are animated at 30 and extrapolated at 60 as they are exported, but a whole lot of operators in Touch default to 60 instead of $FPS, which I think would create a lot of problems?

d

Check out the checksamplerates command. We introduced this during a huge project to check for rogue CHOPs, and then change their sample rate.

1 Like