2. История развития игровой графики
У игровой 3D графики, по меркам развития компьютерных технологий, долгая история. Она уходит корнями в те времена, когда программисты лишь пытались создать третье измерение для игр. На самом же деле такое 3D больше было похоже на очень сложное 2D. Простой пример принципов такого "движка". Ребра всего окружающего изображаются линиями одного цвета. Боевая машина предстает в виде нескольких зеленых граней. Горы, представляющие собой далекий ландшафт прорисованы с той же тщательностью и тем же цветом. Перед игроком - перекрестье прицела столь же потрясающего качества, но красного цвета. В небе - Земля: круг в верхней части экрана, разделенный вогнутой линией, отсекающей воображаемую освещенную часть от не освещенной (они не отличаются по цвету друг от друга) и обращающей нашу планету в месяц. Да, да! Это она! Величайшая война на Луне во всей истории компьютерных игр! Оригинальная Battlezone, римейк которой был выпущен недавно. Подлинник же увидел свет в 1980 году. Он был создан для компьютеров Atari, и является первой настоящей 3D-игрой с видом от первого лица, первым танковым симулятором и первым симулятором какой бы то ни было боевой техники вообще.
3. Игровая графика и примеры ее применения
Создание игровой графики, художественное оформление игры – один из важнейших моментов процесса разработки. На это уходит львиная доля бюджета игры, а сама графика в значительной степени определяет то, что называется «атмосферой игры». Кроме того, хорошая графика – это еще и одно из условий успешных продаж: вспомните броскую рекламу в журналах, построенную на реальной внутриигровой графике, скриншоты в Интернете и на коробках с играми.
Вообще говоря, понятие «игровая графика» включает в себя так называемый концепт-арт, то есть эскизы и наброски, во многом определяющие то, как игра будет выглядеть, и собственно компьютерную – внутриигровую – графику. Как правило, художники, занимающиеся эскизами, работают в тесном сотрудничестве с дизайнерами игры. Они помогают конкретизировать замысел, создавая наброски героев и декораций. Иногда при этом выполняется и трехмерное моделирование. Далее в дело вступают компьютерные художники, непосредственно занимающиеся созданием персонажей (точнее говоря, текстурами, как для двухмерных спрайтов, так и для полигонов, из которых состоят 3D-объекты) и прорисовку задних планов (так называемого окружения), и художники-аниматоры (о них речь пойдет в следующей главе). В некоторых компаниях на помощь к ним приходят еще и специалисты, отвечающие за встраивание графики в движок игры.
3.1 Пространство
Трехмерное пространство в играх имеет координаты и соответствующие оси. Все, что мы видим или не видим: объекты стены источники света, основные элементы (спрайты, воксели, полигоны) - обладает координатами разного рода.
Самая главная система координат (почти всегда одинаковая)- это система координат, берущая отчет от виртуальной камеры, то есть относительно экрана. Чаще всего используется левосторонняя система координат. В таком случае точка пересечения всех осей (в которой все координаты нулевые) будет в левом нижнем углу экрана. Ось Х будет уходить вправо по нижнему краю. Ось Y будет уходить вверх по правому краю. Ось Z будет уходить как бы вглубь. В случае правосторонней системой координат, точка пересечения осей, соответственно, будет справа.
Поскольку игровые объекты могут находиться в любой точке трехмерного пространства, вычислительная машина определяет, что, собственно, видно наблюдателю. Здесь определяется направление камеры и угол обзора. Для того чтобы не прорисовывать все, что находится в направлении взгляда (для повышения производительности и во избежание исчерпания ресурсов Z-буфера) задаются передняя и задняя отсекающие плоскости. Не выводится на экран то, что находится к виртуальной камере ближе передней отсекающей плоскости и дальше задней отсекающей плоскости. С этим явлением все встречались не раз. В старых коридорных войнах времен Doom это делалось при помощи тьмы. Устанавливалась граница, дальше которой все было погружено в кромешный мрак. Присутствует это и сейчас. Например, в Star Wars: Rogue Squadron наличествует туман. В дневных миссиях прекрасно видно, как, во время полета, ландшафт выступает из бежевой пелены нам навстречу.
Таким образом, на экране появляется только то, что находится в зоне, подобной пирамиде. Эта зона определяется четырьмя прямыми и двумя плоскостями. Из углов экрана в глубь сцены уходят прямые, которые по мере удаления от его поверхности расходятся в разные стороны. Так определяется, до какой отметки вправо, влево, вниз и вверх "видит" виртуальная камера. Задняя отсекающая плоскость есть строго установленное расстояние, далее которого объекты не выводятся на экран. Она определяет пределы "видимости" в глубину. Наш взгляд перпендикулярен этой плоскости. Она оказывается в основании пирамиды. Передняя отсекающая плоскость находится прямо перед камерой и отсекает объекты, находящиеся ближе нее к экрану. Все, что есть в этой "пирамидоподобной" зоне, проецируется на экран. Что бы определить координаты объекта на экране, к его вершинам применяется преобразование, которое отражает координаты трехмерного пространства на координаты экрана. Преобразование осуществляется с помощью матрицы размером 4х4. в обычном варианте, для получения двумерных вершины на экране, умножается вектор трехмерных координат в пространстве на матрицу преобразования. До недавнего времени эти вычисления выполнялись только на программном уровне. Компания AMD разработала технологию 3Dnow!, суть которой в том, что процессор может выполнять команды матричной математики, производя вычисления с плавающей точкой по принципу SIMD (Single Instruction Multiple Data, одна команда много данных), что существенно увеличило скорость преобразований в программах, использующих эти команды. Такие игры "взметнулись" на новый уровень производительности в расчетах с 3D. Вспомним Unreal! "Программка" бегала на AMD K6-II побыстрее, чем на "втором пне" с той же частотой. Для точности надо заметить, что не намного быстрее, поскольку операции с плавающей точкой из набора x86 у этого "камня" от Advanced Micro Devices исполнялись существенно медленнее, чем у Intel'овских "мыслящих кристаллов". Ответным шагом Intel, стало создание аналога 3Dnow! - 50 команд в составе Streaming SIMD Extentions от Intel, примененных в Pentium III, которые подняли производительность программных преобразований на более высокий уровень, поскольку Intel, в отличии от AMD, не стала торопиться и сделала куда более "мощную" технологию, "обгоняющую" 3Dnow! По всем возможностям. Жаль, что команды SSE пока еще не где не реализованы в играх, если не считать графических тестов, имитирующих реальную игру. Но, это все - программные расчеты. На них ориентировались до тех пор, пока корпорация nVIDIA не разработала графический процессор GeForce 256, выполняющий такие преобразования на аппаратном уровне. Это - наиболее эффективный способ на сегодняшний день, оставляющий позади все "софтверные" вычисления. Надо просто поиграть в Q3 на "карточке" с таким "камушком", и тогда быстро и без лишних слов "доходит" насколько хороша аппаратная трансформация.
Преобразования не происходят сами по себе. Для этого, а также для управления объектами почти всегда используются фреймы. Фрейм - это управляющие границы объекта с преобразованием, применяемым ко всем его потомкам (несколько заумно, но проще, извините, не получается). Если он представляется наглядно, то это "делается" в форме параллелепипеда. Куб, как известно, тоже является параллелепипедом, но с равными сторонами. Впрочем, многие из вас, наверное, видели изображение фрейма. Те, кто пользовался программами для рисования 3D (3D Studio Max, Ray Dream STUDIO, Light Wave и т.п.) видели наглядное представление этого "явления". Оно выполняется для упрощения работы художника с объектом и изображается всякий раз, когда объект выделяется. Выделенный объект оказывается, как бы заключенным в параллелепипеде или кубе, у которого есть только тонкие грани, которые не мешают созерцать объект.
Управляющими фреймы являются потому, что объект, находящийся внутри, неподвижен относительно своего "обрамления" и движется только вместе с ним. То есть, проще говоря, для перемещения объекта надо переместить его фрейм. Возникает вопрос: а как же человек будет шевелить руками? В случае с полигонной моделью это происходит следующим образом. Фреймы присоединяются друг к другу по иерархии. Модель человека имеет свой фрейм, его рука - свой, привязанный к большему, а кисть - свой. Что бы модель шевелила кистью, должно измениться положение соответствующего фрейма относительно того, к которому он привязан. При этом происходит трансформация объекта, то есть внесение изменений в сцену от кадра к кадру при его перемещении, масштабировании и вращении.
Присоединенные к фрейму объекты могут трансформироваться относительно других фреймов. Для того что бы вычислить двумерные координаты объекта на экране, "машина" совмещает результаты преобразований всех фреймов, расположенных выше этого объекта по иерархии, и определяет окончательные преобразования объекта.
Большинство графических механизмов (или, просто "движков") позволяют избегать излишних преобразований, задерживающих процесс определения координат. Обычно сохраняется копия матрицы итогового преобразования каждого фрейма. Она получается умножением матриц всех его преобразований. В случае, если все вышестоящие по иерархии фреймы не изменились, итоговое преобразование можно не пересчитывать.
Чаще всего, камера, так же, как и другие объекты, имеет свой фрейм. Она тоже может быть объектом трансформации. Все фреймы должны быть прикреплены к какому либо старшему фрейму. На вершине иерархии находится единственный фрейм, который ни к чему не прикреплен (но все прикреплено к нему) - фрейм сцены.
... теории, так и для художественной практики. Рождение артефакта из артефакта ведет к возникновению своего рода художественной теории относительности. 2.7 Проблемы использования новейших технологий в современном кинематографе Возникновение компьютерных спецэффектов в кино внесло существенные изменения. В экранной культуре возникли новые возможности, новые проблемы. И нам надо определить эти ...
... свою факторную структуру. Небольшая коррекция значения среднего по шкалам не превышает критических значений. Уменьшение же разброса данных (дисперсии) вполне объяснимо, т.к. выборка пользователей сети Интернет обладает чёткими признаками: молодые люди (медиана - 27 лет), в основном с высшим образованием, владеющие высокими технологиями. К основным преимуществам использования сети Интернет для ...
... , и уж тогда успех гарантированно обеспечен. Однако такое происходит крайне редко, не каждый год и даже не каждые два года во всем мире [4]. 2. Технологии создания компьютерных игр 2.1 Этапы разработки компьютерных игр Подготовка к производству Задача разработчиков на этом этапе – разработать концепцию игры, дизайн персонажей, выбрать средства для реализации проекта, создать ...
... в воображаемом игровом пространстве, проявляя фантазию в строгих рамках роли. Игрок эволюционирует вместе со своим персонажем; это означает, что у него/нее прибавляется практический опыт в рамках игровой деятельности; при этом затруднительно оценивать перспективы переноса специфического опыта, почерпнутого в такого рода играх, в реальную деятельность. Каждая характеристика персонажа (среди них - ...
0 комментариев