Подтвердить что ты не робот

LIBGDX: Что такое "окно просмотра"?

Это сообщение связано с более ранним сообщением о том, как правильно отображать между LIBGDX и Box2D. Я должен был понять окно просмотра задолго до того, как смог продолжить.
После большого количества кодовых/пост-показаний я почувствовал, что значение "видового экрана" было "прямоугольным открытием объектива камеры, который просматривает мир игр LIBGDX, где я могу переместить его по всему миру, чтобы посмотреть, что я хочу". Но, после большего чтения, я, казалось, был нигде рядом с фактическим значением.
Я прочитал вики LIBGDX и прочитал в документации OpenGL, которые, по-видимому, объясняют область просмотра как две разные вещи.

LIBGDX Wiki:

"Окно просмотра представляет собой прямоугольную область просмотра экрана, на которой проецируется 3D-сценарий. Это не что иное, как отображение трехмерных объектов на двумерную плоскость".

OpenGL:

"в окне просмотра отображается форма доступной области экрана, в которую отображается карта."

Stackoverflow:

"... Он имеет несколько определений в разных контекстах...": '(

Я пробовал читать десятки сообщений на форуме и учебных пособий. Но, к сожалению, почти все прыгают прямо в него, как будто "видовой экран" - такая примитивная концепция, которую все понимают и знают.
Я знаю, что я получу много тепла для этого совершенно элементарного вопроса. Пожалуйста, не пламени, я спрашиваю, потому что я действительно не знаю и на самом деле нуждаюсь в помощи.

В любом случае, в настоящий вопрос.

Что такое "viewport" в контексте LIBGDX?

4b9b3361

Ответ 1

Это зависит от версии LibGDX, которую вы используете. С LibGDX 1.0.0 был введен класс Viewport и, вероятно, что последние слова и статьи означают, когда они говорят о "видовых экранах".

Этот класс управляет двумя вещами:

  • Окно просмотра камеры
  • Окно просмотра OpenGL

Видовой экран камеры определяет, сколько вы хотите увидеть в игровом мире. Если у вас огромный TiledMap размером 10000px X 10000px, то вы, вероятно, хотите сразу отобразить небольшую область этой карты. Если вы определяете окно просмотра ваших камер на 800px X 480px, вы увидите часть своей карты, которая имеет именно это измерение (по крайней мере, в случае OrthographicCamera). Это похоже на окно, через которое вы просматриваете свой мир, и определяете его размер через окно просмотра.

Окно просмотра OpenGL определяет область, к которой должен быть привязан вид камеры. По умолчанию это окно просмотра составляет 100% от размера вашего окна на настольных операционных системах. Но это может быть и другим. A FitViewport с LibGDX 1.0.0 может масштабировать этот видовой экран так, чтобы он сохранял пропорции "виртуального видового экрана", который вы определяете (который фактически является окном просмотра камеры, которым управляет класс Viewport). Это означает, что в случае, если соотношение сторон окна не соответствует формату Viewport (виртуальный), окно просмотра OpenGL будет установлено на меньший размер, и появятся черные полосы. Таким образом, вы можете думать об этом как о другом слое между фактическим окном на рабочем столе и камерой. Этот уровень отображает выходные данные вашей камеры и масштабирует их до определенного размера в окне вашего рабочего стола.