Технологии: Эффекты в компьютерных играх
Технологии: Эффекты в компьютерных играх
Спецэффекты нужны не только в кино, но и в компьютерных играх. Причем то, что для киношников не составляет никакого труда, может вызвать у разработчиков игр головную боль. Первое, что приходит на ум, – это тени. Если при натурных съемках они получаются сами собой, да и при рендеринге 3D-сцен рейтрейсеры делают неплохие тени, то в играх…
Тени
…в играх использовать рейтрейсеры пока невозможно из-за недостаточной производительности компьютеров. Самый простой способ создания тени, падающей от объекта на плоскость, – это разместить под объектом полигон с заранее заготовленной полупрозрачной текстурой, повторяющей форму тени. Или же, если объект и источник света неподвижны, тень можно нарисовать на текстуре пола. Но если объект будет двигаться относительно источника света, то и тень должна меняться.
В таких случаях придется рисовать объект дважды. Один раз таким, каким мы его будем видеть, а второй раз путем несложных проекционных преобразований изменив его так, чтобы по форме он точно соответствовал своей тени. После чего объект окрашивается в полупрозрачный серый цвет и отрисовывается на полу. Этот метод, однако, подходит, только когда тень падает на плоскость, а если под объектом сложная рельефная поверхность?
Для таких случаев существует технология теневых объемов (Shadow Volume). Нам придется дважды нарисовать часть сцены, на которую может попасть тень. Сначала для отбрасывающего тень объекта строится трехмерное тело, соответствующее той части пространства, которую он затеняет. Например, для круга – это будет конус, а для треугольника – пирамида. Понятно, что построить такое тело для объекта сложной формы непросто, хотя можно построить отдельный объем для каждого полигона, а потом их объединить. После чего встроенными средствами видеокарты мы можем отсечь часть сцены, не попадающую в теневой объем. Затем, отсекая то, что не попало в объем, нарисуем ту же сцену, но с приглушенными цветами. Этот метод позволяет рисовать тени, которые одни сложные объекты отбрасывают на другие не менее сложные, а также на самих себя. В последнем случае придется рисовать объект столько раз, сколько в нем содержится полигонов. Shadow Volume подходит не только для создания теней, но и для имитации ярких пучков света. В этом случае объем будет соответствовать пучку света, а части сцены, попадающие внутрь пучков, будем рисовать ярче, чем остальные. Если же тела, соответствующие теневым объемам, сделать полупрозрачными, то лучи будут отчетливо видны в пространстве. Останется только решить проблему просвечивания пучков через объекты сцены.
Метод Shadow Mapping позволяет делать тени, отбрасываемые предметами на себя. Для этого в точке освещения создается виртуальная камера, и все точки, которые ей «видны», заносятся в специальный буфер. Они рисуются освещенными, а все остальные затененными. Перечисленные методы делают так называемые жесткие тени, имеющие четкую границу с освещенными частями сцены. В реальности же края теней чаще всего размыты, из-за того что источники света не точечные и свет отражается от различных предметов. Чтобы имитировать такие тени, можно одним из предложенных методов несколько раз нарисовать их, постепенно уменьшая размеры и увеличивая затемненность, и таким образом получить плавный переход.
Современные видеокарты поддерживают пиксельные шейдеры, с помощью которых можно получить очень неплохие тени. Для каждого пиксела задается программа, позволяющая определить его освещенность и сделать цвет ярче или темнее. Так можно сгенерировать жесткие или мягкие тени. Единственный недостаток этого метода – код шейдера для каждой сцены придется писать практически заново.
Отражения
Плоское зеркало сделать достаточно просто, нарисовав с обратной стороны то, что должно в нем отражаться. Стеклянные полы делаются таким же способом: под полом рисуется перевернутая комната со всей обстановкой, а пол делается полупрозрачным. Таким образом, нижняя комната будет восприниматься как отражение верхней, и в зависимости от степени прозрачности пола он может казаться как зеркальным, так и едва отражающим.
Но если понадобится сделать отражающим предмет сложной формы? Можно, конечно, для каждого полигона нарисовать перевернутую сцену. Но человек устроен так, что ему трудно оценить, насколько реально выглядит отражающая поверхность сложной формы, главное, чтобы блестело и контуры угадывались.
Поэтому такие отражения делают «нечестно», натягивая на объект специальную текстуру. Существенно упростить эту задачу может автоматическая генерация текстур. Обычно используют сферическую или кубическую генерацию: вокруг объекта создаются обтянутые текстурой виртуальные куб или шар, которые и проецируются на объект. Соответственно для шара достаточно одной текстуры, а для куба потребуются все шесть.
Чтобы создать эффект отражения, необходимо в качестве текстур для объекта с автоматической генерацией текстурных координат подать фотографию сцены, сделанную из центра объекта. Для сферического способа придется использовать сверхширокоугольный объектив с захватом в 360 градусов, иначе предмет будет отражать только часть сцены. А для кубического подойдет и с 90-градусным. Если сцена, которую необходимо отражать, статична, то текстуры можно заготовить заранее, если же она изменяется, то ее придется фотографировать прямо в процессе работы программы. Точно так же можно создать и эффект преломления, достаточно просто-напросто перевернуть текстуры.
Взрывы, огонь и дым
Во многих играх чуть ли не каждую секунду что-то взрывается и горит. Для создания взрывов существует несколько подходов. Самый простой из них – это технология, основанная на 2D-спрайтах. Взрыв представляет собой последовательность быстро меняющихся текстур (точно так же можно сделать и огонь, только последовательность должна быть зацикленной). Поскольку это объект двумерный, нужно, чтобы взрыв был всегда обращен «лицом» к игроку. К сожалению, такие взрывы трудно разнообразить. Игра, в которой все взрывы одинаковые, будет выглядеть странно, а каждый новый тип взрыва потребует свою уникальную последовательность спрайтов (кстати, огонь можно разнообразить, просто сдвинув последовательность текстур по фазе). Такие взрывы нельзя располагать очень близко к игроку, иначе их плоская природа будет заметна.
Более сложные и впечатляющие эффекты создаются при помощи систем частиц. Тут киноиндустрия и разработчики игр идут нога в ногу. Ведь в кино на обработку каждого кадра компьютер может потратить достаточно большое время, а в игре это неприемлемо. А вот создание взрывов при помощи геометрии применяется только при разработке игр. Взрывы создаются как специфическая комбинация текстурированных особым образом сфер и других фигур. Такие взрывы гораздо менее требовательны к вычислительным ресурсам, чем сделанные на основе систем частиц, и зачастую дают неплохие результаты, ни в чем не уступающие им.
Практически все дымы в играх – это системы частиц, а вот для создания огня есть свой специфический способ, основанный на 3D-текстурах. Объемная текстура – это аналог обычной плоской текстуры, только теперь каждая вершина имеет не две, а три координаты, что позволяет накладывать на полигон такие цвета, какие соответствовали бы треугольнику в 3D-текстуре с углами в нужных точках. Огонь представляет собой изменяющееся тело, текстурированное таким образом, и за счет структуры 3D-текстуры достигается мерцание огня. Потенциально этот способ может давать очень хорошие результаты, но он довольно сложен в реализации.
Различного рода туманы часто используются в играх. Раньше главным предназначением тумана было скрыть границы сцены. Например, на открытой местности можно было не рисовать все объекты до горизонта, а просто затуманить их. Такой способ достаточно примитивно реализуется, просто, в зависимости от удаления точек от камеры, к их цвету подмешивался цвет тумана. Позже туман стали использовать для придания определенной атмосферы, тут он уже должен был быть не на всей сцене, а только на определенных ее участках. Для этого очень хорошо подходил вершинный туман; при его использовании для каждой вершины указывался не только цвет, но и «туманная» координата, в зависимости от которой и подмешивался цвет тумана. Интересный эффект стелящейся над землей пелены достигается набором полупрозрачных горизонтальных плоскостей, по которым в различных направлениях могут двигаться едва различимые текстуры.
Уже сейчас качество эффектов в играх оставило далеко позади некоторые фильмы прошлого, и можно с уверенностью сказать, что то, чем нас сейчас удивляет кинематограф, в недалеком будущем можно будет увидеть и на экране монитора в реальном времени.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Кое-что об играх
Кое-что об играх Игры представлены во Всемирной сети огромным обилием всяческих игровых порталов. В Интернете вам предоставляются следующие широкие возможности.– Игры в режиме онлайн, как для одного пользователя, так и для команды.– Скачивание дополнений и обновлений
12. Зарабатываем на играх: тестируем новые программы, получаем доход
12. Зарабатываем на играх: тестируем новые программы, получаем доход Чтобы тестировать игры и зарабатывать на этом деньги, не требуется никаких специальных способностей. Выопробываете новые игры, и соответственно берете плату. Что же предполагают слова «Заработать на
5.3. AdverGaming – размещение рекламы в играх
5.3. AdverGaming – размещение рекламы в играх Сегодня все компьютерные игры делятся, по большому счету, на три разновидности.1. ИГРЫ НА ДИСКАХ (КОРОБОЧНЫЕ ИГРЫ). Это игры на дисках, которые покупаются пользователями для игры с компьютером (игровой приставкой) или с одним-двумя
1.3. Разновидности компьютерных вирусов
1.3. Разновидности компьютерных вирусов Пришло время ознакомиться c особенностями работы некоторых вирусов – хотя бы для того, чтобы, узнав о начале очередной эпидемии, не спешить отключать кабель, ведущий к модему.Точную классификацию вирусов и других вредоносных
Синдром компьютерных игр
Синдром компьютерных игр Целью покупки большинства домашних компьютеров является использование их в качестве развлекательной платформы. В первую очередь это игры. Синдром зависимости от компьютерных игр до сих пор не исследован, и при его изучении можно столкнуться с
Классификация компьютерных игр
Классификация компьютерных игр Классификация по жанрам3D Shooter (3D-шутеры, «бродилки»)В играх данного типа игрок, как правило, действуя в одиночку, должен уничтожать врагов при помощи холодного и огнестрельного оружия, выполняя задания уровней. Врагами часто являются:
ТЕХНОЛОГИИ: Информационные технологии Древней Руси
ТЕХНОЛОГИИ: Информационные технологии Древней Руси Автор: Ваннах МихаилИнформационные технологии Древней Руси? Ну да, конечно. Когда при раскопках античности обнаружили проволоку, то сделали вывод, что у древних был телеграф. Тем археологическим культурам, где
ТЕХНОЛОГИИ: 2G, 3G, 3.5G, 3.75G… Технологии мобильной связи дробятся и множатся
ТЕХНОЛОГИИ: 2G, 3G, 3.5G, 3.75G… Технологии мобильной связи дробятся и множатся Автор: Родион НасакинНи один аналитик не возьмется со стопроцентной уверенностью указать технологию, по которой будет работать подавляющее большинство сетей мобильной связи через пять-десять лет.
10.3. Классификации компьютерных сетей
10.3. Классификации компьютерных сетей Объединение компьютеров и устройств в сеть может производиться различными способами и средствами. По составу своих компоненов, способам их соединения, сфере использования и другим признакам сети можно разбить на классы таким
Трёхмерный фотореализм: когда графика в играх начнёт казаться реальностью Андрей Письменный
Трёхмерный фотореализм: когда графика в играх начнёт казаться реальностью Андрей Письменный Опубликовано 04 апреля 2013 Каждый раз со сменой поколений графических систем мы задаёмся вопросом: «Скоро ли компьютерная графика станет
Словарь компьютерных терминов
Словарь компьютерных терминов А abend (abnormal end) — аварийное завершение работы программы, завершение работы программы с ошибкой, синоним этого термина — crashAC (Accumulator) — аккумуляторAC (Alternating Current) — переменный токaccept — соглашаться, приниматьactive — активный,
О «КОМПЬЮТЕРНЫХ СПЕЦИАЛИСТАХ»
О «КОМПЬЮТЕРНЫХ СПЕЦИАЛИСТАХ» Да, в этой книге мне придется много рассказать о достаточно специфических компьютерных вещах — потому что в большинстве своём безопасность информации напрямую связана с компьютерами. Однако без этого не обойтись. Пока у тебя вопросами
Расследование компьютерных преступлений
Расследование компьютерных преступлений Большинство групп реагирования на вторжение не проводят расследований. Они только предоставляют помощь, информацию и ведут поиск причин. Если вы стали жертвой компьютерного преступления, то вам, может быть, будет необходимо
ТЕХНОЛОГИИ: Контроллер контроллеру рознь: Паровозные технологии XXI века
ТЕХНОЛОГИИ: Контроллер контроллеру рознь: Паровозные технологии XXI века Автор: Анатолий СорокинВ своей предыдущей статье «IT-технологии Бога Войны» («КТ» #644-645) автор попытался сделать анализ применения и применимости современного хайтека к реалиям современной
Сюжеты компьютерных игр
Сюжеты компьютерных игр Выделяют немало сюжетов компьютерных игр, такие как:• эпоха Древнего мира до нашей эры (динозавры, древние ящеры);• эпоха Древнего мира, зарождение человеческой цивилизации, (например, игра «Начало нового мира»);• фантастика: далекое будущее,
ТЕХНОЛОГИИ: Визуальные эффекты в кинематографе
ТЕХНОЛОГИИ: Визуальные эффекты в кинематографе Практически сразу после появления кинематографа, режиссерам показалось недостаточно того, что можно просто снять на камеру. Им захотелось показать зрителю что-то новое, то чего он не может увидеть в обычной жизни. Еще в 1905