Interested Article - Скайбокс
- 2020-01-25
- 2
Скайбо́кс ( англ. sky — « небо » и box — «коробка») — объект в трёхмерной графике , играющий роль неба и горизонта . Представляет собой несложную трёхмерную модель (как правило, куб ), со внутренней стороны которой натянута текстура неба (так называемая « кубическая текстура »).
Технология
Обработка трёхмерной графики требует много вычислительной работы, поэтому «честно» просчитывать в играх объекты, находящиеся на горизонте, было бы расточительством. К тому же, трёхмерное аппаратное обеспечение имеет Z-буферы , которые из-за ограниченной разрядности отбрасывают всё, что находится далеко от . Поэтому удалённые объекты изображаются крайне примитивно: в виде куба, шесть граней которого — текстуры неба и горизонта. Если отобразить этот куб так, чтобы камера находилась точно в центре, будет казаться, что через камеру действительно видны небо и горы.
Скайбокс всегда следует за камерой, так что изображённые на скайбоксе объекты выглядят удалёнными в бесконечность. Движок отображает скайбокс каждый кадр в первую очередь, отключив Z-буферизацию .
Высокие, заметные из любой точки уровня объекты (наподобие башен ) обычно на скайбоксе не рисуют — для них нужна не иллюзия «бесконечной удалённости», а наоборот, определённое положение в пространстве. Но существуют исключения из правил, когда на скайбоксах изображают огромные сооружения, призванные показать, что же находится за пределами игрового уровня. Подобные скайбоксы можно увидеть в Quake II , Quake 4 , The Chronicles of Riddick: Escape from Butcher Bay и др.
Источником текстур может быть что угодно: фотография, рисунок или трёхмерный рендер .
Трёхмерные скайбоксы
Чтобы как-то «оживить» небо, с конца 1990-х годов разработчики начали добавлять в скайбокс немного геометрии — например, слои облаков и звёзд в Unreal и realMyst . В игре Grand Prix 3 цилиндрический горизонт и сферическое небо отделены друг от друга — это связано с требованием динамически менять погоду на автодроме.
В более новых играх скайбоксы составляют из нескольких слоёв, которые двигаются за игроком с неравной скоростью . Так смоделирована башня Цитадели в Half-Life 2 . В уровнях, расположенных внутри Цитадели, верхние этажи башни, к которым игрок доступа не имеет, — тоже часть трёхмерного скайбокса . В любом случае, геометрия скайбоксов остаётся предельно простой: например, сверхпортал из Half-Life 2: Episode Two представляет собой всего лишь один многоугольник, а видимость портала достигнута шейдерами . В Half-Life 2 трёхмерные скайбоксы делаются в масштабе 1:16 — объекты в редакторе в 16 раз меньше, чем в игре .
Интересно, что в игре Portal от той же Valve игрок вообще не видит неба, и авторы даже не пытались исправить артефакты трёхмерного скайбокса при взгляде через портал. В более новых версиях движка это исправлено .
Нетрадиционные скайбоксы
В 2,5-мерных движках наподобие Doom engine скайбокс имеет вид цилиндра . В отличие от современных игр, экран не заливался скайбоксом каждый кадр, а фрагменты неба рисовались с помощью особой процедуры, когда рендерер попадал на «залитые небом» плоскости .
В первых трёхмерных играх ( Quake ) небо представляло собой «бесконечно удалённую» плоскость с движущейся по ней текстурой облаков. Такое небо выглядит «давящим», полным слоистых облаков — даже если в действительности оно синее, с лёгкими белыми облачками. В Quake 3 такой метод рисования неба также доступен наряду с кубом; кроме того, можно использовать оба метода, рисуя плоскость с «давящими» облаками поверх кубического скайбокса.
В некоторых играх (например, Grand Prix 3 ) скайбокс имеет форму сферы или купола . Возможно, это связано с крайне низкой детализацией текстур и режимом программного рендеринга.
См. также
Примечания
- от 29 сентября 2010 на Wayback Machine (англ.)
- . Дата обращения: 4 октября 2010. 15 июля 2010 года.
- от 29 марта 2010 на Wayback Machine (англ.)
- ↑ Комментарии разработчиков к игре.
- ↑ от 2 октября 2010 на Wayback Machine (англ.)
- Исходный код Doom был выпущен под свободной лицензией и доступен для ознакомления любому желающему.
- Заметно, если в настройках драйверов излишне сместить центр текселя .
- 2020-01-25
- 2