8 октября 2015

Видимость в обновлении 1.53


Обновление 1.53 “Шквальный Огонь” вместе с постепенным переходом на технологии Dagor Engine 4.0 принесет существенные изменения в игру, благодаря изменениям видимости танков и самолетов. Но начнем издалека....

Самолеты

Чем определяется видимость, к примеру, самолета? Часто можно услышать что “в реальной жизни видно лучше” или “человек уверенно распознает силуэт самолета с Х километров”, или “в игре Y видно лучше\хуже, более\менее реалистично”. 

Слухом самолёты обнаруживаются значительно легче, чем зрением. При безветрии в ясную погоду шум мотора можно слышать за 10—12 км, а увидеть самолёт без бинокля можно только на расстоянии до 8—10 км.

При определении расстояния до самолёта на-глаз учитывать следующие признаки:


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

Человек имеет угол обзора порядка 130х160 градусов, Угловое разрешение: 1—2′ (около 0,02°—0,03°), что соответствует 30—60 см на 1 км расстояния.

Боковым зрением мы видим существенно хуже, воспринимая скорее движения, и с большими искажениями. Прямо перед собой мы видим с хорошей разрешающей способностью (если принять что зрение у нас отличное), и с углом обзора порядка 40 градусов.

Белые клетки в тени и черные на свету - одного цвета Однако глаза этого не замечают. Мозг видит черные и белые клетки независимо от освещенности!
Автор иллюзии Эдвард Адельсон (E.H. Adelson), 1995

Кроме того, наши зрачки непрерывно двигаются, “сканируя” всё поле зрения. Что заодно компенсирует восприятие информации в области так называемого слепого пятна - области, где мы вообще не видим ничего. Мы не замечаем наличия слепого пятна, равно как и искажения восприятия бокового зрения благодаря работе нашего мозга - мозг непрерывно ведет работу по распознаванию образов, реконструируя цвета объектов, их форму и положение. В непосредственной близости и прямо перед собой, благодаря наличию у нас двух глаз, мозг выдает нам размеры и положения объектов. Но если закрыть один глаз, мир не меняется - не становится немедленно невыносимо плоским. Это происходит благодаря работе нашего мозга. При этом на таком расстоянии с игровой камеры персонажи имеют размеры в пикселях.

Технически, в глазу находится 120 миллионов монохромных и 5 млн. цветных рецепторов, но поток видеоданных к мозгу происходит с некоторыми потерями. Это, примерно, эквивалентно видеопотоку в 75 кадров в секунду в 30 мегапикселей.

Для сравнения - лучшие мониторы сейчас это 4096 × 3112 в 60fps (и вам понадобится очень мощное железо), с углом обзора порядка 30 градусов (на плоском дисплее), что в целом не уступает оптическому разрешению глаза на этом же угле обзора (без учета диапазона яркости), но глазом мы воспринимаем угол в несколько раз больше, т.е. экран монитора это всего лишь “окно” из нашего мира, в мир виртуальной реальности. Подавляющее большинство игроков играет в 1920х1080 или меньшем разрешении в 60-90fps, что в несколько раз хуже, чем то, что способен воспринять зоркий глаз. Наше “окошко” в виртуальный мир к тому же, как правило, немного мутновато и сильно более тускло - монитор имеет всего лишь 256 разных монохромных градаций яркости, а реальный глаз способен распознать во много раз больше.

Взгляните на картинку издалека и увидите Мерилин Монро

Но это не всё. Наш угол обзора экрана обычно порядка 30-45 градусов, и для естественного восприятия игровая камера должна показывать тоже в 30-45. Если игровая камера будет иметь больший угол обзора, наш мозг будет неправильно реконструировать положения и размеры объектов - все будет казаться маленьким и далеко, и недостаток разрешения нашего монитора станет еще более заметным.

Тем не менее, практически 100% игр имеют игровое разрешение в районе 90 градусов. Это некое компромиссное значение между ~130градусами обзора человеческого глаза, и 30-40 градусами обзора на котором человек будет корректно воспринимать размеры объектов.

Самое заметное к чему приводит такой компромисс - это искажение всех размеров. Например, в популярной игре Counter Strike размер большинства карт не превышает 200метров от края до края, что заметно меньше расстояния прицельной стрельбы из большинства винтовок, и меньше расстояния применения снайперских винтовок.

Более всего игровые камеры напоминают картинку, которую выдают action-камеры, такие как GoPro. При желании в youtube легко найти различные видео с таких камер, и оценить насколько маленькими кажутся там люди уже в нескольких метрах.

Какого цвета пилюли?

Естественно, при таком угле обзора самолет с расстояния в 4км на FullHD мониторе становится шириной примерно в 4 пикселя, а высотой в половину пикселя - иными словами исчезает из виду. И даже с 2км самолет имеет толщину крыльев существенно меньше пикселя, а фюзеляжа размером где-то в один пиксель. Что означает, что с обычной игровой камеры самолет начинает моргать и исчезать с расстояния 2км и полностью исчезает к 4м. При использовании техники MSAA - сглаживания, теоретически самолет видно до 2х км (хотя это и очень маленькие величины).

Кроме того, человеческий глаз прекрасно распознает скорости - т.е. движение объектов. Делаем мы это более эффективно чем просто распознаем силуэты. Но на мониторе в FullHD основное, самое заметное, движение с такого расстояния у самолета это так называемый альязинг (aliasing) - появление и исчезновение пикслей (с которым и борется MSAA). В итоге, по мере улучшения техники рендера земля становится более полной деталями, и нам становится труднее распознать объект, который представляет из собой всего лишь несколько пикселей, на контрастном и богатом деталями фоне.

Как вы теперь, вероятно, понимаете, задача показать в игре “как в жизни” - крайне сложная.

Поверхность у обоих столов абсолютна одинакова

Потому как технически реализовать качество распознавание зорким человеком объектом невозможно более чем на два порядка, если не жертвовать углом обзора (“приближение” в игре - делает именно это, превращает угол обзора игровой камеры в примерно соответствующий реальному разрешению зоркого человека).

Потому для игровых объектов в большинстве игр используются определенные трюки. В War Thunder до версии 1.53 основным таким трюком для самолетов были так называемые “контакты” или “мухи” - специальный объект обозначающий визуальный контакт. Контакты рисуются с расстояния, где самолеты начинают исчезать - становятся меньше пикселя, сабпиксельными (конкретное расстояние зависит от размера самолета, угла обзора камеры и разрешения монитора) и до момента “потери контакта” (это, в зависимости от разных факторов обычно порядка 10-12км).

В большинстве игровых режимов на некоторых расстояниях рисуются также маркера - это специальные элемент интерфейса, заменяющий игроку техническое несовершенство мониторов - т.е. фактически распознанный и обнаруженный контакт показывается как яркий объект. В реальной жизни в современной войне такие маркера “свой\чужой” являются важным атрибутом высокотехнологичного шлема пилота (или танкиста). И там они порой решают ту же задачу, что и в игре - не только упрощают жизнь пилоту\танкисту, но и компенсируют нехватку разрешения внешних камер и самого дисплея шлема.

Чтобы маркера работали наиболее приближенно не к современному вооружению, а именно к идеи “так на самом деле воспринимает информацию пилот”, показ маркеров учитывает условия видимости, освещенности, туман, облака, нахождение объекта прямо на фоне солнца, относительную высоту над горизонтом (на фоне земли заметить самолет гораздо труднее и в реальной жизни) и многое другое, в том числе характеристики пилота. В 1.53 вся эта механика была обновлена и уточнена, и сделана более явной для игрока, но это тема для другой статьи (или списка изменений 1.53).

В наших “Симуляторных боях”, призванных максимально аутентично изображать сражения Второй Мировой маркеров нет, чтобы не портить чужеродными элементами картины “как из жизни”. Однако вместе с этим, технику становится видно намного хуже, чем в реальной жизни - если быть точным, примерно так, как было бы видно в реальной жизни, если вы смотрите на бой из action-камеры закрепленной на шлеме пилота. И на самом деле даже чуть лучше, благодаря большой работе проведенной над тем, чтобы сделать более похожим игру на “жизнь”, чем на “цифровую видеокамеру”. А именно - “контакты” появляются на расстояниях, где самолет уже точно не видно. Однако перед этим есть моменты, когда самолеты уже достаточно плохо видно - это всего лишь несколько пикселей! - но еще не закрываются “мухой”, потому что это закроет ориентацию и маневры самолета. На таких (“средних”) дистанциях самолеты было очень легко потерять из виду в режиме без маркеров.



В Обновлении 1.53 для самолетов на промежуточных дистанциях создан особый уровень детализации. Фактически, игра рисует самолет в другом угле обзора, и с более высоким разрешением (анти-алиасинг), так, чтобы он не терялся полностью из виду. Соответственно теперь, на средних дистанциях самолет хоть и кажется “маленьким” но остается достаточно заметным, при этом не теряя свою форму или силуэт. Вместе с новым рендером, который делает локации более реалистичными в расчете освещения и рассеяния (и соответственно менее контрастными на больших расстояниях), это заметно улучшает обнаружение и слежение за целью в воздушном бою, делая бои более комфортными.

Мы надеемся любители полетов по достоинству оцените эту новаторскую концепцию.

Одновременно, исходное динамическое разрешение изображения было увеличено в 8-16 раз, и таким образом, на более близких расстояниях (до километра) если раньше блик на крыле самолета, мог практически “исчезать” усредняясь с соседней небликующей поверхностью, то теперь вы можете более точно определять ориентацию самолета противника и совершаемые им маневры.


На фрагменте скриншота - самолет F4U с расстояния в 1.5км с обычной игровой камеры от третьего лица в 1.51 и в 2км в 1.53, на настройках качества ‘высокое’. Снять с одинакового расстояния в 2км в 1.51 не удалось - сложно зафиксировать даже один видимый пиксель без приближения камеры. С большего расстояния начинают проявляться “контакты"

Вторая часть. Видимость на земле.

Если в воздухе основными преградами для “зрения” становятся большие расстояния и ограниченное разрешение на крайне желательный большой угол обзор (так как противники могут быть где угодно в трехмерном мире воздушных сражений), то на земле основным препятствием для зрения становятся “естественные” преграды - дома, трава, деревья и кусты. Трава ограничивают обзор как правило только в снайперском прицеле, так как в обычном виде точка обзора находится относительно высоко над танком, и даже высокая трава на холмах крайне редко закрывает силуэты противников. В прицеле же порой случается, что трава на подъеме на холме оказывается как раз на линии между вашим прицелом и противником. В реальной жизни такая проблема, тоже, естественно, случается, но довольно редко, так как высокая и прочная трава на полях сражений это все-таки редкая климатическая особенность. В связи с чем в War Thunder есть игровая настройка “показывать траву в снайперском прицеле”, которая увеличивает комфорт игры и убирает эту разницу в игровом процессе у игроков на разных настройках.

Большие объекты - дома, скалы, холмы - учитываются в просчете видимости еще на сервере. Таким образом клиент игрока просто не получает данные о танках, полностью закрытых большими объектами или находящимися достаточно далеко. В 1.53 вся система обнаружения и распознавания (передача маркеров) полностью обновлена. В 1.51 и раньше игрок получал только данные о танках, которые он непосредственно мог увидеть, плюс в некотором радиусе слышимости вокруг (для стреляющих танков противников радиусы увеличивались), при этом распознавание (появление маркера) определялось насколько сильно закрыт танк противника. На радиусы влияли характеристики экипажа (зоркость), но как правило в реальных боях видимость маркера определялось закрытостью его объектами. Действие команды практически никак не учитывалось (на более далеком расстоянии появлялись цели которые ваши союзники выбрали кнопкой выделения цели).

В “Шквальном Огне” все принципиально изменится. Танки теперь видят “вперед”, в относительно узком секторе, по направлению движения танка, и “по обзору” - по направлению камеры в широком секторе. Теперь начинающий экипаж “обнаруживает” (т.е. сервер начинает передавать ему данные) о “затаившемся” танке (т.е. неподвижном и не стреляющем) с расстояния в 500-750 метров (данные с рабочей версии и могут меняться), полностью обученный - с расстояния в 2-3 раза большего. При этом двигающийся или стреляющий (даже из пулеметов) танк резко демаскирует себя (становится виден с большего расстояния) - что отвечает тому, как реально работает зрение у людей (наших танкистов). В будущем игра вероятно начнет учитывать для “обнаружения” также и маскировку - к примеру, цвет камуфляжа и размеры танка и снайперский вид с биноклем (в них танки будут обнаруживаться с большей дистанции).

При этом, теперь танкисты вашего экипажа начинают автоматически получать и передавать сообщения о том, где находятся противники. Расстояние, на котором ваш экипаж обнаруживает цель по радиосообщениям от соратников, определяется навыком “радиосвязь”. Сообщения передаются другим экипажам в том случае, если танк находится под огнем противника или наоборот попал по машине врага, а также в случае наведения на цель. В Реалистичном Режиме, где над противниками нет маркеров, в таких случаях маркер будет ставится как знак привлечения внимания прямо на карту, обозначая “в этой точке я видел противника”. Таким образом, как мы надеемся, увеличится тактическая палитра действий - теперь можно более эффективно засесть в засаду или “подкрасться” сзади - враг не заметит вас пока вы не откроете огонь; при этом слаженные командные действия могут сильно увеличить эффективность игры.

Кроме больших объектов и травы на открытых картах War Thunder на видимость и заметность танков влияют кусты и деревья. Некоторые игроки в War Thunder играют на ultra low quality (compatibility mode, режим совместимости со старыми видеокартами) не потому, что имеют слабые машины, а чтобы получить некоторое преимущество в бою - кусты рядом с вашей машиной не закроют вид из прицела, а более близкие максимальные расстояния отрисовки деревьев могут повлиять на “закрытость” объекта деревьями. И хотя таких игроков было относительно немного, само наличие такой возможности отравляло игру, тем кто хотел получить максимум удовольствия от достаточной мощности своей игровой системы. Увы, это была цена за сильно упрощенной, но высокопроизводительный рендер для старых видеокарт.

Расстояние максимальной отрисовки деревьев существенно меньше влияет в новом обновлении, так как дистанция обнаружения теперь больше определяется навыками экипажа и активностью. Но тем не менее, в 1.53, благодаря улучшенным возможностям Dagor Engine 4,0 и кусты, и деревья теперь рисуются при виде с танка на одинаковые расстояния во всех режимах на всех настройках (до 'Высоких' включительно), при этом плотность тумана останется по-прежнему несколько выше в Ultra Low Quality.

Увеличенная дальность видимости деревьев все же может незначительно повлиять на производительность в некоторых конфигурациях, но на большинстве не должно оказать значимого эффекта, кроме общего улучшения качества и детализации локаций, благодаря проделанной оптимизации в режиме Ultra low quality.

А теперь посмотрим разницу в режиме Ultra low quality:


А теперь посмотрим разницу в режиме Ultra low quality:


Мы надеемся, что вы сможете по достоинству оценить и полюбить проделанную нами в 1.53 работу в ближайшее время.


Источники:


Обсудить на Форуме

Cookie-файлы

На сайте используются файлы cookie и другие аналогичные средства. Если вы остаётесь на сайте после прочтения данной информации, это означает, что вы не возражаете против их использования.