- Gamedev suffering
- Блог о разработке игр и серверных технологиях
- Секреты FoV от авторов Witchfire
- FoV и с чем его едят
- Fov камеры что это
- Fov камеры что это
- А в мониторах?
- Зачем это?
- Где может пригодиться повышенный FOV?
- Секреты FoV от авторов Witchfire
- Как я FOV измерил без циркуля и линейки
- Обработка изображения
- Что такое FOV
Gamedev suffering
Блог о разработке игр и серверных технологиях
Секреты FoV от авторов Witchfire
Пара слов от Kacper Domański (разработчика AI в The Astronauts), которые могут порадовать некоторых PC игроков.
Kacper поделился интересной инфой о разработке с внутренней кухни, а также рассказал про FoV (поле зрения) и как оно работает в Witchfire.
Парни из AMD подогнали астронавтам сверхширокий LG монитор, оказавшимся и благословением, и проклятием.
Хорошая новость в том, Witchfire смотрится охренительно в 21:9.
Часть про проклятье, конечно же, шутка, но подарок заставил попотеть разработчиков над рендерингом оружия. Результаты могут порадовать PC игроков.
FoV и с чем его едят
FoV (поле зрения) — это, вероятно, штука, с которой большинство игроков шутанов знакомы: оно контролирует, по сути, то, что вы видите на экране и влияет на восприятие расстояния, размера и скорости игроками.
Мы меняем FoV во время игры, уменьшая его при наведении, что создаёт эффект зума, и слегка увеличивая его при спринте и броске, чтобы создать ощущение быстрого движения. В то же время (особенно большой) FoV может деформировать объекты определенным образом и влияет на производительность, поскольку на экране появляется больше объектов.
FoV 90. Больше окружения / тяжелее рендеринг.
FoV 120. Ещё больше вещей на экране / ещё больше рендерить
Как раз по причине нагрузки на отрисовку консоли лочат этот параметр, чтобы обеспечить стабильный fps. На ПК у нас обычно полный контроль над этой настройкой (в разумных пределах, безусловно).
Как может происходить деформация объектов? Например, так:
Наибольшие деформации происходят на ближайших к камере объектах — руке игрока и оружии:
Мы определенно хотим дать игрокам возможность выбрать наиболее подходящий для них вариант, но мы не тратим сотни часов на полировку вещей, которые легко поломать!
Другая проблема заключается в том, как выглядит оружие, когда игрок целится. Мы изменяем угол поля зрения камеры, чтобы получить относительный зум эффект. При сверхвысоких или сверхнизких значениях FoV оружие выглядит хреново — либо слишком большая часть оружия торчит на экране, либо наоборот.
ADS in FoV 60. Огромное оружие, нет рук.
ADS in FoV 120. До коликов маленькая пушка, но гигантские руки.
ADS in FoV 60, как надо.
ADS in FoV 120, как надо.
К тому же, благодаря возможности у игрока выбрать положение перекрестия (в центре или пониже), изменение поля зрения может полностью нарушить перспективу. Перекрестие может быть направлено в голову врага, но сам пистолет будет нацелен в живот.
Решение всех этих проблем, к примеру, фиксация FOV для модели оружия и игрока на постоянном значении при этом оставляя FoV переменным, довольно простое на бумаге и намного сложнее в реальности. Нам потребовалось некоторое время, чтобы приготовить это правильно.
Первым шагом было внесение изменений в исходный код Unreal Engine, чтобы мы могли явно выбирать, хотим ли мы рендерить какую-либо модель в FoV камеры или кастомно. Затем мы немного поэкспериментировали с углом и остановились на магическом числе 77, чтобы Jakub, аниматор всех наших пушек, мог расположить их и сделать анимации, которые в конечном итоге выглядели бы точно так же, как и в его программном обеспечении.
Затем добавили щепотку матана, чтобы вращать камеру в зависимости от положения перекрестия на экране. Это позволило модели пистолета вписаться в UI; в противном случае всё ощущались бы как-то так.
Так всё и работало…пока мы не получили этот великолепный 21:9 экран и не заметили, что рендеринг оружий сломан.
Не то чтобы это было полной катастрофой, но мы хотели сделать эту часть игры идеальной. Поэтому я и изменил нашу залоченную FoV, сделал вертикальной вместо горизонтальной, и это решило проблему раз и навсегда. Не стесняйтесь спрашивать подробности в Твиттере.
Небольшое дополнение от Каспера в Твиттере.
So it basically works like cropping the picture in given axis, like here. The background itself would change (that’s the camera fov) but gun was cropped 🙂 pic.twitter.com/uzcZekwG42
Правильное 21: 9. Пистолет выглядит хорошо, видны руки.
В конце концов, прямо сейчас у парней полный контроль над тем, как выглядят пушки в игре, что в итоге позволит играть так, как нам удобно:
Источник
Fov камеры что это
Среди множества спецификаций объектива всегда упоминается угол обзора (или угол зрения). Что это и как его определить? Технически — это наибольший угол с вершиной в оптическом центре объектива, при котором все предметы, находящиеся в его пределах, будут изображены объективом в плоскости его кадрового окна. Простыми словами — это та часть пространства, которую может охватить объектив.
Угол обзора объектива обратно пропорционален фокусному расстоянию объектива. Т.е. снимая на широкоугольную оптику, вы получите наибольшие углы обзора, а пристегнув телеобъектив вы получите минимальный угол поля зрения.
Чтобы разобраться, давайте попробуем определить конкретный угол для одного из наиболее популярных фокусных расстояний – 50 мм.
В общем виде формула, при помощи которой можно просчитать угол поля зрения линзы, выглядит так:
Угол поля зрения = 114,6 ⋅ arctg(21,622 / (S ⋅ F), °
Где F – это фокусное расстояние,
S — кроп-фактор. Для полного кадра значение S = 1, остальные варианты представлены на изображении ниже:
В нашем случае угол обзора для объектива с ФР 50 мм на полном кадре составит: 114,6 ⋅ arctg(21,622 / (1 ⋅ 50) = 46,77°.
Заниматься такими расчетами расчётами нет необходимости. Эта характеристика всегда указывается производителем. Но для справки мы собрали большую часть фокусных расстояний и их углы зрения для различных форматов современных сенсоров наиболее популярных форматов изображений в виде таблицы:
Источник
Fov камеры что это
FOV — это поле зрения. Угловое пространство, которое видит человеческий глаз при неподвижной голове и зафиксированном взгляде. Поле зрения среднестатистического человека составляет 55° вверх, 60° вниз, 90° наружу (суммарное поле зрения двумя глазами — 180°) и 60° — внутрь. Из-за особенностей строения человеческий глаз распознает объекты трехмерными в пределах 110°, а полноцветными — в еще меньшем диапазоне. Для сравнения, после зрения некоторых птиц достигает почти 360°.
А в мониторах?
Про-геймеры уже давно игрались со значением FOV, тогда как казуальные игроки обратили внимание на поле зрения с появлением Ultrawide LG мониторов. Точнее, когда LG выпустила доступные массовому потребителю модели.
Все преимущества FOV раскрываются на широкоформатных мониторах с соотношением сторон 21:9. Линейка Ultrawide LG 2017 года целиком состоит из таких моделей, тогда как в линейке Gaming их четыре. Остальные — привычные экраны 16:9. Но всех их объединяют хорошая контрастность, углы обзора и время отклика. Разрешение тоже не отстает: от FullHD на 24 и 27-дюймовых моделях до 2560×1080 на 29/34 дюймах. А у на 38 дюймах — до 3840×1600.
Зачем это?
Мудрые геймеры предпочитают ставить угол обзора больше, чтобы на экране сразу помещалось больше информации. Обратите внимание на отзывы к играм в Steam: игроки, привыкшие к увеличенному значению FOV, часто выделяют как недостаток отсутствие ручной регулировки угла обзора — даже там, где это совершенно не нужно. Такие отзывы копятся и совершенно необоснованно занижают рейтинг игр в Steam. Это особенно фатально для инди — ведь низкий рейтинг напрямую влияет на покупки.
На Ultrawide LG мониторе поле зрения по умолчанию значительно выше. Но, к сожалению, разработчики не всех игр озадачиваются поддержкой мониторов 21:9. Владельцы таких экранов уже добавили в закладки FOV-калькулятор и в курсе значений Vert-/Hor+. Первое — обрезка изображения сверху и снизу (те самые «кинематографичные» полосы), второе — увеличение FOV, которое влечет за собой больше доступного глазу контента по ширине.
Решить проблему поддержки широкоформатных мониторов в играх может адаптивное поле обзора Vert+/Hor+. Почитать об этом методе на примере Quake можно здесь.
Ультраширокие экраны по-новому раскрывают компьютеры в работе (мультитаскеры в восторге!) и в играх. Все больше мультимедиа контента выходит под экраны такой формы, и мониторы Ultrawide LG — доступный способ приобщиться.
Где может пригодиться повышенный FOV?
В шутерах вроде Titanfall 2, Overwatch, Call of Duty и сессионных играх типа World of Tanks и PUBG. Поиск оптимального значения FOV в последней — популярная тема на фан-сайтах. С увеличенным полем зрения ощутимо легче заметить врага на периферии, ориентироваться в замкнутых пространствах, заглядывать за угол. Кроме того, не придется так активно елозить мышью, за что в напряженной схватке вы неоднократно поблагодарите новенький монитор с повышенным FOV.
Источник
Секреты FoV от авторов Witchfire
Пара слов от Kacper Domański (разработчика AI в The Astronauts), которые могут порадовать некоторых ПК-игроков.
Kacper поделился интересной инфой о разработке с внутренней кухни, и я перевёл для своего бложика его мысли про FoV (поле зрения) и как оно работает в Witchfire.
Парни из AMD подогнали «астронавтам» сверхширокий LG монитор, оказавшимся и благословением, и проклятием.
Хорошая новость в том, Witchfire в 21:9 смотрится охренительно.
Часть про проклятье, конечно же, шутка, но подарок заставил попотеть разработчиков над рендерингом оружия, и результаты могут порадовать ПК-игроков.
FoV (поле зрения) — это характеристика с которой большинство игроков шутеров знаком. Одноимённая настройка контролирует, по сути, то, что вы видите на экране и влияет на восприятие расстояния, размера и скорости игроками.
Мы меняем FoV во время игры, уменьшая его при наведении, что создаёт эффект зума, и слегка увеличивая его при спринте и броске, чтобы создать ощущение быстрого движения. В то же время (особенно большой) FoV может деформировать объекты определённым образом и влияет на производительность, поскольку на экране появляется больше объектов.
Как раз по причине нагрузки на консолях блокируют этот параметр, чтобы обеспечить стабильный FPS. На ПК у нас обычно полный контроль над этой настройкой (в разумных пределах, безусловно).
Как может происходить деформация объектов? Например, так:
Наибольшие деформации происходят на ближайших к камере объектах — руке игрока и оружии:
Мы определённо хотим дать игрокам возможность выбрать наиболее подходящий для них вариант, но мы не тратим сотни часов на полировку вещей, которые легко поломать!
Другая проблема заключается в том, как выглядит оружие, когда игрок целится. Мы изменяем угол поля зрения камеры, чтобы получить относительный зум эффект. При сверхвысоких или сверхнизких значениях FoV оружие выглядит хреново — либо слишком большая часть оружия торчит на экране, либо наоборот.
ADS in FoV 60, как надо.
К тому же, благодаря возможности у игрока выбрать положение перекрестия (в центре или пониже), изменение поля зрения может полностью нарушить перспективу. Перекрестие может быть направлено в голову врага, но сам пистолет будет нацелен в живот.
Решение всех этих проблем, к примеру, фиксация FOV для модели оружия и игрока на постоянном значении при этом оставляя FoV переменным, довольно простое на бумаге и намного сложнее в реальности. Нам потребовалось некоторое время, чтобы приготовить это правильно.
Первым шагом было внесение изменений в исходный код Unreal Engine, чтобы мы могли явно выбирать, хотим ли мы рендерить какую-либо модель в FoV камеры или кастомно. Затем мы немного поэкспериментировали с углом и остановились на магическом числе 77, чтобы Jakub, аниматор всех наших пушек, мог расположить их и сделать анимации, которые в конечном итоге выглядели бы точно так же, как и в его программном обеспечении.
Затем добавили щепотку матана, чтобы вращать камеру в зависимости от положения перекрестия на экране. Это позволило модели пистолета вписаться в UI; в противном случае всё ощущались бы как-то так.
Так всё и работало…пока мы не получили этот великолепный 21:9 экран и не заметили, что рендеринг оружий сломан.
Не то чтобы это было полной катастрофой, но мы хотели сделать эту часть игры идеальной. Поэтому я и изменил нашу залоченную FoV, сделал вертикальной вместо горизонтальной, и это решило проблему раз и навсегда. Не стесняйтесь спрашивать подробности в Твиттере.
В конце концов, прямо сейчас у парней полный контроль над тем, как выглядят пушки в игре, что в итоге позволит играть так, как нам удобно:
Источник
Как я FOV измерил без циркуля и линейки
Во дворе мы играли в войнушку. Слабые и толстые были фашистами, остальные их побеждали. Двор и детство исчезли, а воевать хочется.
Я превратил свой iPhone в автомат, а фашистов нарисовал в дополненной реальности.
Видеозахват рисует мир вокруг моего рабочего кресла, фашисты лезут из всех щелей, я держу круговую оборону.
Стоп! А как привязать врагов к окружающей действительности?
Я сделал это очень просто.
Обработка изображения
Посмотрите на первую картинку видеозахвата.
Я пробегаю по всей ширине (480 пикселей) изображения и суммирую RGB компоненты точек, лежащих с текущей точкой на одной вертикальной прямой. Получаем массив из 480 элементов.
На верхней части рисунка изображена красно-белая (оле!) гистограмма найденной функции.
То же самое проделываем со следующим кадром из видеопотока. Посмотрите на рисунок 2.
Моя задача — совместить красно-белые гистограммы первого и второго кадра. Сдвигая графики друг относительно друга, я очень быстро нахожу оптимальное совпадение. Разница в сдвиге и есть искомое смещение реальности в моем iPhone в горизонтальном направлении.
Таким, образом виртуальный объект навсегда привязывается к реальному местоположению. В каждый момент времени мы знаем, насколько пикселов его сдвинуть в горизонтальной плоскости.
Хорошо ли работает алгоритм? Очень неплохо. Главное, не дергать телефон во время игры — данный подход не любит смещения более 40 пикселов за такт. А такт у камеры 20 кадров в секунду.
При резких движениях надо, видимо, использовать уже тяжелую артиллерию — гироскоп и акселерометр.
Что такое FOV
Каждое оптическое устройство имеет FOV (field of view). Будь то человеческий глаз или мыльница.
Что в FOV попадает — прибор видит. Прочее — нет, хоть убей. На картинке человек видит дерево, а машину не видит. Это может быть опасно.
FOV измеряется в градусах. У человека FOV около 120-ти градусов для каждого глаза. У зайца, например, 150. То есть двумя глазами заяц покрывает почти всю сферу видимости. Не видит заяц только ровно вперед 10 градусов и ровно назад 10 градусов. Косой…
Ладно, а какой FOV у моего iPhone?
Заглянул, разумеется, в интернет. Бог мой, чтобы вычислить FOV iOS устройства, необходима специальная лаборатория с лазерными измерителями.
У меня нет такой лаборатории. А зачем? Я просто запустил вышеописанную программу. Сел на любимое вращающееся кресло. И повернулся на 360 градусов. Программа выдала размер сферы вокруг меня.
Программа выдала размер сферы вокруг меня.
В пикселах — стабильно для iPod последнего поколения 3050-3060 пикселей.
Таким образом FOV моего iPod равен 480*360/3060 = 56-57 градусов.
А лазер намерял 55.7.
Неплохая точность у меня получилась, согласитесь.
Скрытая реклама моего приложения, использующего вышесказанный алгоритм, помещена в теги. Только это между нами, ок?
Источник