Скайбокс

Скайбокс

Скайбо́кс (англ. sky — «небо» и box — «параллелепипед»; игра слов с англ. skybox — VIP-ложа на стадионе выше трибун[1]) — объект в трёхмерной графике, играющий роль неба и горизонта. Представляет собой несложную трёхмерную модель (как правило, куб), с внутренней стороны которой натянута текстура неба (так называемая «кубическая текстура»).

Содержание

Технология

Обработка трёхмерной графики требует много вычислительной работы, поэтому «честно» просчитывать в играх объекты, находящиеся на горизонте, было бы расточительством. К тому же трёхмерное аппаратное обеспечение имеет Z-буферы, которые из-за ограниченной разрядности отбрасывают всё, что находится далеко от камеры[2].

Поэтому удалённые объекты изображаются крайне примитивно: в виде куба, шесть граней которого — текстуры неба и горизонта. Если отобразить этот куб так, чтобы камера находилась точно в центре, будет казаться, что через камеру действительно видны небо и горы. Скайбокс всегда следует за камерой, так что изображённые на скайбоксе объекты выглядят удалёнными в бесконечность. Движок отображает скайбокс каждый кадр в первую очередь, отключив Z-буферизацию[3].

Высокие, заметные из любой точки уровня объекты наподобие башен обычно на скайбоксе не рисуют — для них нужна не иллюзия «бесконечной удалённости», а, наоборот, определённое положение в пространстве. Источником текстур может быть что угодно: фотография, рисунок или трёхмерный рендер.

Трёхмерные скайбоксы

Красивый вихрь удалось реализовать одним многоугольником (Half-Life 2: Episode Two)

Чтобы как-то «оживить» небо, с конца 90-х разработчики начали добавлять в скайбокс немного геометрии — например, слои облаков и звёзд в Unreal[4] и realMyst. В игре Grand Prix 3 цилиндрический горизонт и сферическое небо отделены друг от друга — это связано с требованием динамически менять погоду на автодроме.

В более новых играх скайбоксы составляют из нескольких слоёв, которые двигают за игроком с неравной скоростью. Например, таким образом смоделирована башня Цитадели в Half-Life 2. В уровнях, расположенных внутри Цитадели, верхние этажи башни, к которым игрок доступа не имеет, — тоже часть трёхмерного скайбокса[5]. В любом случае, геометрия скайбоксов остаётся предельно простой: например, сверхпортал из Half-Life 2: Episode Two представляет собой всего лишь один многоугольник, а видимость портала достигнута шейдерами[5]. В Half-Life 2 трёхмерные скайбоксы делаются в масштабе 1:16 — объекты рисуются в 16 раз меньше их действительного размера[6].

Интересно, что в игре Portal от той же Valve игрок вообще не видит неба, и авторы даже не пытались исправить артефакты трёхмерного скайбокса при взгляде через портал. В более новых версиях движка это исправлено[6].

Нетрадиционные скайбоксы

«Давящее» плоскостное небо в Nexuiz

В 2,5-мерных движках наподобие Doom скайбокс имеет вид цилиндра. В отличие от современных игр, экран не заливался скайбоксом каждый кадр, а фрагменты неба рисовались с помощью особой процедуры, когда рендерер попадал на «залитые небом» плоскости[7].

В первых трёхмерных играх (Quake) небо представляло собой «бесконечно удалённую» плоскость с движущейся по ней текстурой облаков. Такое небо выглядит «давящим», полным слоистых облаков — даже если в действительности оно синее, с лёгкими белыми облачками. В Quake 3 такой метод рисования неба также доступен наряду с кубом, кроме того, можно использовать оба метода, рисуя плоскость с давящими облаками поверх кубического скайбокса.

В некоторых играх (Grand Prix 3) скайбокс имеет форму сферы или купола[8]. Возможно, это связано с крайне низкой детализацией текстур и режимом программного рендеринга.

См. также

Примечания

  1. Lingvo: skybox
  2. OpenGL Red Book — Viewing (англ.)
  3. Gamedev.ru: Простой скайбокс
  4. Unreal Wiki: Skybox (англ.)
  5. 1 2 Комментарии разработчиков к игре.
  6. 1 2 Valve Wiki: 3D Skyboxes (англ.)
  7. Исходный код Doom был выпущен под свободной лицензией и доступен для ознакомления любому желающему.
  8. Заметно, если в настройках драйверов излишне сместить центр текселя.

Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Скайбокс" в других словарях:

  • Unreal Engine — Игровой движок (Список) Логотип игрового движка Разработчик Epic Games, Inc. Аппаратная платформа ПК Xbox …   Википедия

  • UnrealEd — Unreal Editor Редактор Unreal Editor для Unreal Engine 3 с запущенным In Editor Game Тип …   Википедия

  • Half-Life: Source — Логотип игры Разработчик …   Википедия

  • Quake engine — Игровой движок (Список) Разработчик …   Википедия

  • UE2 — Unreal Engine Тип Игровой движок Разработчик Epic Games, Inc. Написана на C++[1], UnrealScript ОС …   Википедия

  • Unreal Engine 2 — Unreal Engine Тип Игровой движок Разработчик Epic Games, Inc. Написана на C++[1], UnrealScript ОС …   Википедия

  • Unreal Engine 2.0 — Unreal Engine Тип Игровой движок Разработчик Epic Games, Inc. Написана на C++[1], UnrealScript ОС …   Википедия

  • Unreal Engine 3 — Unreal Engine Тип Игровой движок Разработчик Epic Games, Inc. Написана на C++[1], UnrealScript ОС …   Википедия

  • Unreal Engine 2.5 — Unreal Engine Тип Игровой движок Разработчик Epic Games, Inc. Написана на C++[1], UnrealScript ОС …   Википедия

  • Unreal engine — Тип Игровой движок Разработчик Epic Games, Inc. Написана на C++[1], UnrealScript ОС …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»