LINUX.ORG.RU
ФорумTalks

Как в играх вычисляют размер экрана и расстояние от точки схождения лучей до него?

 , ,


0

1

Очевидно что размер экрана явно больше реального размера моника, но вот откуда разработчики берут эти параметры? Есть какие-то таблицы?

Даже не представляю как это спросить у гугла.

ЗЫ. Экраном я назвал плоскость проекции. Очевидно что расстояние от камеры до плоскости проекции не совпадает с расстоянием от человека до моника, а размер этой плоскости с размером моника.

ЗЗЫ. Где то можно наковырять уже существующие значения, только не в попугаях (внутренних единицах движка) а в метрах?

★★★★★

Последнее исправление: ya-betmen (всего исправлений: 3)

Очевидно что размер экрана явно больше реального размера моника, но вот откуда разработчики берут эти параметры? Есть какие-то таблицы?

Очевидно, что он не в сантиметрах.

Даже не представляю как это спросить у гугла.

как-то так: 3d graphics viewport 4x4 matrices x, y, z, w

t184256 ★★★★★
()
Ответ на: комментарий от t184256

как-то так

Вот в том то и вопрос, откуда берут что туда пихать. В книжках пишут просто втыкаем вот такие данные, а как их выбирать не написано.

ya-betmen ★★★★★
() автор топика

Полюбас, за них это драйвер делает.

Sociopsih ★☆
()

может быть так: экспериментально вычислить, какой угол зрения у человека. Потом погуглить, как строится linear perspective. Получается геометрическая задачка с нексколькими магически (экспериментально) полученными коэффициентами. Можно сделать и другие коэффициенты, но человек начнет блевать кровью.

Удаленность convergence point в single point linear perspective - это скорей всего удаленность горизонта в реальном мире, которая берется из высоты человека и кривизны поверхности земли

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 2)

Конкретно что не понятно?

Есть такое понятие - перспектива.

И есть такое понятие как расстояние монитора/(плоскости проэцирования) от глаза.

Подумай и переспроси ещё раз. Лучше с формулами и спроси какие коэффициенты тебе не понятны.

Serg_HIS
()

Не надо было линейную алгебру и компьютерную графику в универе прогуливать. Если они у тебя были

Harald ★★★★★
()
Ответ на: комментарий от Harald

Я думаю молодой чумадан хотел спросить про масштаб при проэцировании на экран, а не про собственно разрешение экрана.

Serg_HIS
()

Зачем? Тебе нужен только aspect ratio экрана (и вообще - не экрана, а поверхности, которая может быть экраном, кучей экранов, окном, хоть внеэкранным монохромным буффером размером в один пиксель). Далее ты можешь вычислить горизонтальный и вертикальный углы (fov) камеры, а из них уже матрицу проекции.

slovazap ★★★★★
()
Последнее исправление: slovazap (всего исправлений: 1)
Ответ на: комментарий от slovazap

Вообще такие вещи просто чертятся на бумаге и оттуда берутся коэффициенты. Слова ни о чём тут не нужны. Просто бумага, линейка и карандаш. Потом меряется и вычисляется.

Serg_HIS
()

Как в играх вычисляют размер экрана

Так от возможностей движка зависит. Есть такой вариант: запускаешь малюсенькое видеоокошко, проматываешь несколько кадров, смотришь через функции движка какой у экрана размер, вводишь поправки для маштабирования, выбора подходящих текстур и перезапускаешь окошко с нужным размером.

Очевидно что размер экрана явно больше реального размера моника

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

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

Вообще это просто обычная линейная геометрия в декартовых координатах.

Просто чертишь на бумаге вычисляешь нужные коэффициенты (движок тут ни при чём и разрешение экрана тоже).

Serg_HIS
()

Очевидно что размер экрана явно больше реального размера моника

Используют размер окна.

Meyer ★★★★★
()

Если сам не можешь, могу тебе нарисовать нужные проекции с обязательными коэффициентами. Только попроси.

Serg_HIS
()
Ответ на: комментарий от Harald

И каким боком ткт линейная алгебра?

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от Serg_HIS

Зачем рисовать, просто расскажи как подбирается расстояние от камеры до плоскости проекции

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от Serg_HIS

Если ты про лютое 3Д, то движок располагает модельки в пространстве, а смотреть на них будем через экран - сколько через него увидим,то и увидим. То как они отображаются, зависит от рендера и на заумные геометрические теории накласть. Движок будет не при чём, если ты будешь писать свой, но тогда забудь про написание сложных игр на нём - на 2 таких задачи одного человеческого разума одновременно обычно не хватает. Разрешение экрана как раз при чём. Если оно большое, то придётся заменить некоторые текстурки/модельки на более детализованные. А если разрешение экрана слишком мелкое, то некоторые текстурки придётся заменить на специально адаптированные к низкому разрешению - контуры там прорисовать пожирнее, чтобы лучше было видно.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

Хочешь сказать при разработке люди просто сидят и подгоняют коэффициенты чтобы было красиво?

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от Harald

Экран это плоскость на которую идет проекция. Иначе как его размер может быть больше чем у монитора?

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

В этом к стати напильник прав. Почти всё что делается для хомячков - так и делается. Я же говорил только про подбор коэффициентов размера плоскости проэцирования (экрана) и его расстояние до глаза.

Serg_HIS
()
Ответ на: комментарий от Serg_HIS

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

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

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

Да. именно так.

Serg_HIS
()

Очевидно что размер экрана явно больше реального размера моника

Дальше не читал. Иди учи линейную алгебру.

BceM_IIpuBeT ★★☆☆☆
()

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

targitaj ★★★★★
()
Ответ на: комментарий от ya-betmen

Вот тебе подскажу так. У тебя какой размер моника? Насколько далеко от него находятся твои глаза? Вот и вычисляй свои коэффициенты. Именно так все и делают.

В производстве кино там есть свои нюансы, но они до заднего места вобщем.

Serg_HIS
()
Ответ на: комментарий от ya-betmen

расскажи как подбирается расстояние от камеры до плоскости проекции

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

Napilnik ★★★★★
()
Ответ на: комментарий от Serg_HIS

Посчитай сам, угол зрения другой. Там явно не предполагается что человек смотрит на мир через отверстие размером с моник с полуметра.

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от BceM_IIpuBeT

Ты либо тупишь либо не понял вопрос.

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

Что считать? ты о чём?

А ну да... Праздник приближается...

Колы менше пей.

Лучше водку, она хоть в организме вырабатывается... :)

Serg_HIS
()
Ответ на: комментарий от ya-betmen

Хочешь сказать при разработке люди просто сидят и подгоняют коэффициенты чтобы было красиво?

да (за исключением VR, там надо точнее, чтобы не тошнило)

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

https://ru.wikipedia.org/wiki/Горизонт#Расстояние_до_видимого_горизонта

таблица расстояний до горизонта в зависимости от высоты

4,7 км должно подойти

stevejobs ★★★★☆
()
Ответ на: комментарий от Serg_HIS

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

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

Я например сижу у 23 дюймового моникак и читаю лор с 20 сантиметров. И?

Serg_HIS
()
Ответ на: комментарий от ya-betmen

Хочешь сказать при разработке люди просто сидят и подгоняют коэффициенты чтобы было красиво?

Конечно, если вопрос про игры. Например, если в фильме покажут издалека забивание человеками гвоздей, то махать руками люди будут как им и положено, если это не музыкальный фильм с песнями и танцами. А если забивание гвоздей издалека покажут в игре, то моделькам придётся ззамахиваться молотком за ухо в любом случае, чтобы создать движение в кадре. Если движения будет мало, скажут: кукольник отстой, плохо умеет работать. Потому, вносятся сознательные искажения, чтобы игрок прибалдел и не отрывался от игры. В бесплатных рпг прибалдеть дают сначала, а потом щемят игроков чтобы приплачивали за возможность ощутить балдёжь как в начале игры. Это разные стратегии, которые рулят тем, где, когда и сколько кайфа игрокам выдать.

Napilnik ★★★★★
()
Последнее исправление: Napilnik (всего исправлений: 1)
Ответ на: комментарий от stevejobs

Это задняя плоскость отсечения, а мне расстояние до передней и размер видимой области.

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

Посчитай сам, угол зрения другой. Там явно не предполагается что человек смотрит на мир через отверстие размером с моник с полуметра.

если смотреть на сцену сверху

у человека есть зона бинокулярного и монокулярного зрения.

в зоне бинокулярного зрения всё поле можно побить условно на боковое, среднее, центральное и осевое зрение.

http://windowscomments.com/wp-content/uploads/2015/04/Peripheral_vision_svg.png

для разных зон точка воображаемого горизонта и сходимость лучей будет слегка разная в реальности

можно смотреть как будто бы у нас всего одна проекция, тогда будет как у этого фотоаппарата

https://c1.staticflickr.com/3/2127/1803416154_15ebbbe3f7.jpg

если у нас есть внутреннее фокальное расстояние (между «двумя экранами») будет так

https://www.scratchapixel.com/images/upload/cameras/focallength2.png

самое простое - ничего не считать, и просто поиграть с коэффициентами и просто выставить, чтобы было красиво

stevejobs ★★★★☆
()
Ответ на: комментарий от ya-betmen

Мальчик. Я работаю с графикой лет с 5 притом по всем вариациям.

Если тебе что-то не понятно - спрашивай. Но чтобы вопросы были конструктивные, нарисуй на бумаге то что тебе не понятно. Желательно используй линейку. Декартовы координаты таки рулят в этой теме.

Serg_HIS
()
Ответ на: комментарий от BceM_IIpuBeT

Если есть такая задача. И если она адекватна условиям и глобальной задаче.

Пример:
Условно, свадебный репортаж. Именно репортажного типа «фотограф в стороне и фиксирует события». Если все будет снято, скажем, на 2 ФФ камеры с фокусными 35 и 85мм (условно), то он будет более гармоничен в восприятии. Будет приятнее смотреть. Не будет постоянного скакания «супер ширик - супер крупный план».
С другой стороны же, при таком подходе пропадут сюжеты в роде «очень широкий очень план» или «крупным планом руки невесты».

Так что от задачи.

«Нормализация» эта делается во время съемки посредством выбора объектива. А не обработкой.

dk-
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.