Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Disa от Март 09, 2013, 00:01



Название: "Правильная трансформация" для разного железа
Отправлено: Disa от Март 09, 2013, 00:01
Добрый день.

Тут возник вопрос, который что-то не могу решить сходу, а не сходу не могу понять правильно ли я думаю.

Лирическое отступление:
Если есть некий реал-тайм рендер, то по хорошему говоря все трансформации (трансляция, поворот, масштаб и прочее) должны умножать на промежуток времени между кадрами. Для того чтобы меньше зависеть от железа. Ну грубо говоря эвент нажатия клавиши будет проверяться не чаще чем раз в кадр, вследствие чего анимация будет происходить с разной скоростью на разных машинах (то есть в зависимости от текущего FPSа). Ясно, что это не правильно, иначе автомобиль на 25 FPS и 50 FPS может поехать в два раза быстрее. :)

А что если рендер не совсем реал-там. То есть картинка обновляется не каждую секунду, а только после неких действий (ну просто это не требуется). Как правильно рассчитать этот "весовой" коэффициент? Брать средний FPS? Лучший? Или забить на это и просто жестко задавать скорость на каждый кадр?
 


Название: Re: "Правильная трансформация" для разного железа
Отправлено: Igors от Март 09, 2013, 09:57
Если рендер не тянет заданный FPS, тогда выбор (обычно опция)

- тупо показывать каждый кадр, пусть это и не соответствует заданному FPS
- при показе кадра пропустить какое-то число следующих с тем чтобы общее время показа анимации соответствовало заданному FPS


Название: Re: "Правильная трансформация" для разного железа
Отправлено: Disa от Март 09, 2013, 21:59
Спасибо, хорошее предложение :)