Amerio.Stephane Posted January 17, 2020 Share Posted January 17, 2020 Hello, I'd like to know if these CIGI 3.3 settings are currently supported and how they are implemented: - IGCtrl SmoothingEn - EntityCtrl SmoothingEn - RateCtrl : is it necessary to send them for smoothing? I'm interested in 2.9.0.2 behavior. Does 2.10 improves/changes the behavior? Cases in point: - we have a unit test case where setting EntityCtrl SmoothingEn to 1 but having IGCtrl SmoothingEn to 0 freezes the ownship movement (not a crash, just removes movement). But this strange behavior is not seen in the full simulator, so quite strange. - we have a case where we send CIGI data at 20Hz, with all smoothing enabled and rate ctrl, and still see some stuttering. Sending at 10Hz does not always removes stuttering (framerate is 60Hz rock solid, so not a rendering issue). - we have a "replay" scenario, where we send data a 5Hz, and we need to see a smooth movement. Currently, no matter the settings, the movement is always "jerky". Just trying to understand where we should look at for investigation, here. Thanks! Link to comment
Amerio.Stephane Posted January 21, 2020 Author Share Posted January 21, 2020 Any insight? Link to comment
morbid Posted January 21, 2020 Share Posted January 21, 2020 Hello Stephane, Sorry for the delay. As I understand you want to use asynchronous mode for CIGI with movement interpolation/extrapolation, am I right? If so, we already implemented async mode in our internal build, and will come in 2.11 (planned for March 2019). Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
Amerio.Stephane Posted January 21, 2020 Author Share Posted January 21, 2020 Ok, so until 2.11, there is no smoothing possible from the IG. Link to comment
morbid Posted January 29, 2020 Share Posted January 29, 2020 Hello Stephane, Just got news about stuttering objects. Didn't realize it was a high priority for you. Is it possible to get a sample that we can compile and debug on our site? Thanks. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
Amerio.Stephane Posted January 29, 2020 Author Share Posted January 29, 2020 Hi morbid, Yes, we are using async mode (can't do sync mode, due to constraints of simulator), and micro-stuttering is at the moment the #1 issue we face. Our code doesn't do much at the moment, so it's more or less the same as the default project. The setup is: on the master, the app is running as a small windowed app, with dx, NO quadro Sync II, IG plugin, Syncker plugin as master, and that's all on the slaves, the app is running with fullscreen 1, with GL (otherwise nVidia doesn't respect the frame lock, for whatever reason), Syncker slave, EasyBlend plugin, and that's all (NO ig or cigi plugin here) Link to comment
morbid Posted January 31, 2020 Share Posted January 31, 2020 We tried to reproduce this behavior with no luck. Please, take a look at our logic and point out what we need to change to catch these movement stutterings. planes.mp4 AppWorldLogic.cpp How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
Amerio.Stephane Posted January 31, 2020 Author Share Posted January 31, 2020 In your sample, you are moving the entities from inside the IG update. To better reproduce our issue, I would suggest writing another, independent app, that sends EntityCtrl to the IG for the ownship every 10ms sharp. You can't see the stuttering from another entity. Link to comment
alexander Posted February 3, 2020 Share Posted February 3, 2020 Hi Stephane, Every 10ms (100 FPS) or every 10Hz (10 FPS)? Try to increase interpolation period time: IG::Manager::setInterpolationPeriod(0.1f /* or even 0.2f - 200ms ! */); And please type in the console (~, on Master or Slave, it doesn't matter): syncker_console syncker_interpolation_period 0.1 Got better? Or not? Best regards, Alexander Link to comment
Amerio.Stephane Posted February 3, 2020 Author Share Posted February 3, 2020 I meant 10ms (100fps). Sorry if this is a bit confusing, we have a few different cases, indeed. Just to clarify here: we have replay scenarios, where we "replay" saved data every 200ms, or even 400ms we have desktop simulations, where we send data every 20ms, and maybe 10ms sometimes we have full cockpit simulators, with pilot and hardware in the loop, where data is sent every 10ms Case 1 is in dire need of interpolation/extrapolation in the IG, to have a smoothed movement. Case 2 doesn't have a real pilot in the loop, so smoothing is valid here too. Case 3 has a real pilot, so we must snap as much as possible to the real coords, while still smoothing the displayed movement in-between ticks (if any). I tried setting the interpolation/extrapolation period to 0.2. I tried the syncker cmds in console, I also tried to deactivate the syncker interpolation altogether (0). I don't see a real change. Note that all slaves don't exibit the same amount of visual stuttering, but it may be a perception glitch on my side, or just the slaves showing more grounds than sky. Link to comment
Recommended Posts