All streams
Search
Write a publication
Pull to refresh
8
0
Сиводедов Дмитрий @intet

User

Send message
Забавно сколько людей не понимает сути проблемы — говорят, что привязка обсчёта физики к внешней функции исправит ситуацию.

Нельзя время забора кадра привязывать на внешний таймер идущий с равными тиками, так как тогда в случае просадки FPS или не равномерности по времени рендринга будет следующее — кадры будут обсчитанны для равномерного вывода, а выводиться будут через неравномерные промежутки и итоговая картинка будет дёрганной.
У всех карт появившихся после 90 годов такой эффект может присутствовать, просто чаще наблюдаются другие проблемы — производительности видеокарты не хватает для обеспечения плавности.
Раньше видеокарты были проще. Спрашивая время рендринга кадра он получает время рендринга + время работы внутренних служб GPU, которое выросло из-за усложнения видеокарт относительно прошлых поколений.
Нарисован то кадр будет во время, но вот поправка действительно неверная. А что делать то если единственный источник откуда поправку модно взять( GPU) врет и выдаёт иногда не верные значения.
В статье описано как раз наоборот, кадр стабильно появляется на 60fps.
Он появляется вовремя и стабильно, но игра думает что иногда FPS проседает(хотя это и не правда) и пытается адаптироваться под проседание fps путём измения константы времени кадра. Что в свою очередь приводит к опережению по времени

Когда же они ставили постоянные 60 FPS они по факту и делали это поправку константой в 16 мс и лаги переставали наблюдаться.
Как раз небольшую задержку в полкадра на видео в статье мы и видим. Там кадр ошибся по времени в 8 мс.
Вроде проблема в другом. CPU считал физику 0.0 0.1 0.2 0.3 0.4. GPU отвечал что нарисовал кадр в 0.1 0.2 0.3 0.45. CPU заметил что отрисовка запаздывает и занимает 0.15 а не 0.10. И следующий тик посчитал в 0.6 а не 0.5. И когда GPU пришёл заданными для 0.5 отдал ему данные для 0.6 что и вылилось в опережение кадра.
Ну посчитали физику 60 в секунду, а потом пытаемся отобразить кадр попадающий не точно в то момент, а на 8 мс позднее. Ровно посередине тика расчета физики, для него какое значение брать. А если соседние с ним кадры попадёт ровно в тик? Будет два подряд одинаковых кадра?

Если не учитывать время рендеринга то картинка будет запаздывать, по ощущениям будет похоже что игра тормозит.

Рендер и так отвязан от игровой логики. Как указано в статье забор инпута с фиксированным фреймрейтом действительно решает проблему. Но это работает только пока вы успеваете рендерить кадр без просадки fps.
Если же надо рендерить при плавающем fps, то проблема никуда не девается. Физика игры берёться не на текущий момент, а на текущее время+ время рендеринга кадра. И если gpu говорит что не успевает отрисовать за 16, и успела только за 24 то игра пытается компенсировать просадку fps нарисовав кадр в более далеком будущем. Но в реальности просадки fps нет и кадр опережает реальный мир.
К тому же совершенно не решает указанную выше проблему, а может даже ухудшит положение. Проблема не в том, что кадр идёт долго до монитора, а в том что драйвер отвечает что кадр отрисован с плавающей задержкой. При этом задержки на самом деле нет, это он просто занимался внутренними вещами.
Время рендера кадра не скачет. В статье же сказано, что если принудительно считать временем рендера 16.6 то все хорошо. Кадры будут успевать отрисовываться. Но если пытаться узнать за какое время отрисовался кадр, то иногда получают завышенное число в 24 мс. Из которых на рендеринг кадра ушло меньше 16 мс, а остальное время драйвер занимался внутриними вещами уже после отрисовки и показа кадра.
Это очевидно, что если есть заграничный сервер то прокси можно настраивать прямо на заграничном. Но в то-то и дело, что есть только Российский сервер и акаунт на vpn сервере. К самому зарубежному серваку доступа нет. Вот и думал, можно ли обойтись без полноценного сервера зарубежом или стоит не парить себе голову взять за 5$/месяц от DO.
А зачем в схеме вообще российский сервер


Просто что Российский сервер, что акаунт VPN достались по наследству и совершенно бесплатны. Поэтому и хотелось обойтись чисто ими.

Заранеее спасибо за ответ.
Есть виртуальный сервер с публичным ip (centos, nginx) расположеный в России и vpn сервер расположенный за границей. Хочеться как-то настроить эту связку, так чтобы заходить на ip первого сервера, а уже сервер через тунель стучался к конкретному сайту (rutracker.org например). Сейчас же приходиться на каждом клиенте поднимать vpn соеденение
Цель в том, чтобы без настроек на стороне клиента заходить на сервер, который уже будет поднимать тунели/проксировать до сайта. Хочется настроить один раз и использовать на любой машине.

Я новичок в стеке vpn/proxy, поэтому возможно немного глупый вопрос. Если есть vpn сервер расположенный в цивилизованной стране не блокирующей трафик и сервер арендованный на деньги работодателя расположенный на мощностях ростелекома, то нужен ли SSLH чтобы развернуть реверс прокси и стучаться в удаленный сайт через впн просто подключаясь к Ростелекомовскому серверу.

Имел опыт работы с программой которая компилировалась только под java 7, но запускалась только на java 8. Связанно с использованием js движка Rhino корректно работающего только в таком режиме.
Проблема в общем подходе java когда однажды принятое, возможно хорошее на тот момент решение, не возможно изменить ввиду обратной совместимости.
Я java-разработчик воспринимаю это как еще одну неровность языка из-за которой приходиться таскать с собой постоянно объекта класса. Да проблему можно обойти, но высокоуровневый язык програмирования должен упрощать жизнь, а не вставлять палки в колеса.
У лутбоксов главная проблема не в том что цена завышена, а в том что настоящая цена расплывается.
В детстве когда копил деньги на диск с игрой, то ты был уверен что купив игру, то дальше можно будет спокойно развлекаться.
Сегодня же ты сначала покупаешь игру, начинаешь играть и понимаешь, что чтобы нормально играть ты либо должен потратить огромное число времени на гриндинг либо же потратить в разы больше денег на покупку лутбоксов.
Вместо честного выставления цены издатели хитрят и создают видимость небольшой стоимости.

Information

Rating
Does not participate
Location
Долгопрудный, Москва и Московская обл., Россия
Date of birth
Registered
Activity