Multi camera system time synchronization
by Yuri Dobronravin · in Torque 3D Professional · 10/02/2013 (5:18 am) · 6 replies
Hi guys!
Currently I'm using Torque 3d game engine for avia simulator project.
I need to generate single image from the several IG (image generator - torque client) PCs. Each IG displays has its own view camera with certain angle offset and get the info about the current position from the torque server via LAN.
I already setup multi-IG system with standard T3D functions.
Network connection is robust (less than <1 ms)
Frame rate is good as well - about 70 FPS on each IG.
However while flying in the game world the whole picture looks broken because some IG are updating their views faster than others.
I'm looking for the solution that will make the IG update simultaneously. Maybe some kind of precise time synchronization algorithms that make different PC connected via LAN act as one.
Any ideas?
Currently I'm using Torque 3d game engine for avia simulator project.
I need to generate single image from the several IG (image generator - torque client) PCs. Each IG displays has its own view camera with certain angle offset and get the info about the current position from the torque server via LAN.
I already setup multi-IG system with standard T3D functions.
Network connection is robust (less than <1 ms)
Frame rate is good as well - about 70 FPS on each IG.
However while flying in the game world the whole picture looks broken because some IG are updating their views faster than others.
I'm looking for the solution that will make the IG update simultaneously. Maybe some kind of precise time synchronization algorithms that make different PC connected via LAN act as one.
Any ideas?
#2
I'm trying to implement something like this.
I sync time on my PCs with NetTime utility and lock update to 30ms. However it still looks not like frame changes async. Became even worse. Keep trying.
10/02/2013 (9:39 pm)
@RichardI'm trying to implement something like this.
I sync time on my PCs with NetTime utility and lock update to 30ms. However it still looks not like frame changes async. Became even worse. Keep trying.
#3
http://www.garagegames.com/account/profile/73539
that guy also did work on image generator.
but do not know if that was on multiple client.
10/03/2013 (12:22 am)
in case if this help somehow:http://www.garagegames.com/account/profile/73539
that guy also did work on image generator.
but do not know if that was on multiple client.
#4
If that doesn't do the trick you could also add a UDP port on the server that all the clients are listening to and send out a broadcast to tell them when to swap to the previously received position, not the last received position.
This will mean the clients are stuck at a 30fps unless you change the systems update rate.
10/03/2013 (8:50 am)
Since the server generates the next position and sends it to all the clients and the clients interpolate between the previously received position and the just received position. You could try taking out the interpolation and just use the previously sent position.If that doesn't do the trick you could also add a UDP port on the server that all the clients are listening to and send out a broadcast to tell them when to swap to the previously received position, not the last received position.
This will mean the clients are stuck at a 30fps unless you change the systems update rate.
#5
Thanks for the answers. I will experiment today and let you know the results.
10/03/2013 (9:32 pm)
Hi guys!Thanks for the answers. I will experiment today and let you know the results.
#6
However it still not ideal and async on the image generators are visible.
I also tried to remove clients interpolation completely. 30 FPS could be enough but the changes are not smooth and version with interpolation looks much better. Maybe should play more with timing.
10/04/2013 (10:04 pm)
So far I achieved the best results by increasing $pref::Net::PacketRateToClient from 10 to 32, which means that server will be sending packets to client each tick.However it still not ideal and async on the image generators are visible.
I also tried to remove clients interpolation completely. 30 FPS could be enough but the changes are not smooth and version with interpolation looks much better. Maybe should play more with timing.
Torque Owner Richard Ranft
Roostertail Games