Файл: Игровая и виртуальная графика (Понятие виртуальности).pdf
Добавлен: 05.07.2023
Просмотров: 70
Скачиваний: 1
Введение
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и военных исследованиях. С тех пор графический способ отображения данных стал неотъемлемой принадлежностью подавляющего числа компьютерных систем, в особенности персональных. Графический интерфейс пользователя сегодня является стандартом “де-факто” для программного обеспечения разных классов, начиная с операционных систем.
Существует специальная область информатики, изучающая методы и средства создания и обработки изображений с помощью программно-аппаратных вычислительных комплексов, – компьютерная графика. Она охватывает все виды и формы представления изображений, доступных для восприятия человеком либо на экране монитора, либо в виде копии на внешнем носителе (бумага, кинопленка, ткань и прочее). Без компьютерной графики невозможно представить себе не только компьютерный, но и обычный, вполне материальный мир. Визуализация данных находит применение в самых разных сферах человеческой деятельности. Для примера назовем медицину (компьютерная томография), научные исследования (визуализация строения вещества, векторных полей и других данных), моделирование тканей и одежды, опытно-конструкторские разработки.
В зависимости от способа формирования изображений компьютерную графику принято подразделять на растровую, векторную и фрактальную.
Отдельным предметом считается трехмерная (3D) графика, изучающая приемы и методы построения объемных моделей объектов в виртуальном пространстве. Как правило, в ней сочетаются векторный и растровый способы формирования изображений.
На стыке компьютерных, телевизионных и кинотехнологий зародилась и стремительно развивается сравнительно новая область компьютерной графики и анимации.
Заметное место в компьютерной графике отведено развлечениям. Появилось даже такое понятие, как механизм графического представления данных (Graphics Engine). Рынок игровых программ имеет оборот в десятки миллиардов долларов и часто инициализирует очередной этап совершенствования графики и анимации.
Хотя компьютерная графика служит всего лишь инструментом, ее структура и методы основаны на передовых достижениях фундаментальных и прикладных наук: математики, физики, химии, биологии, статистики, программирования и множества других. Это замечание справедливо как для программных, так и для аппаратных средств создания и обработки изображений на компьютере. Поэтому компьютерная графика является одной из наиболее бурно развивающихся отраслей информатики и во многих случаях выступает “локомотивом”, тянущим за собой всю компьютерную индустрию.
1. Понятие виртуальности
С экранов телевизоров, со страниц компьютерной и некомпьютерной прессы все чаще слышится словосочетание '' виртуальная реальность ''. Что же скрывается под этим модным сегодня словом?
В первую очередь имеется в виду трехмерное, объемное изображение (в отличие от псевдотрехмерной графики на плоскости) и трехмерный звук.
Однако в полной мере ощутить всю прелесть виртуальной реальности можно только при наличии таких элементов, как детекторы перемещения, позволяющие отслеживать изменения положения пользователя в увязке с изображением на экране монитора и датчики, фиксирующие действия пользователя. До недавнего времени такие системы можно было увидеть лишь в крупнейших в мире игровых центрах, а стоимость их превышала все мыслимые значения. Но все меняется в современном мире компьютерной техники, и в результате постоянного снижения цен на компьютерное оборудование такие системы становятся доступными и рядовым пользователям настольных компьютеров. Более того, все чаще производители и игрового программного обеспечения, и бизнес – приложений встраивают поддержку виртуальной реальности в свои системы. А с середины 1995 года появилось несколько фирм, специализирующихся на выпуске такого программного обеспечения.
Системы виртуальной реальности в сочетании с ПК широко используются сейчас для развлечений. Они представляют собой различные более или менее сложные устройства, реагирующие на движения пользователя. Если несколько работающих систем виртуальной реальности соединить, образуется так называемое общее киберпространство, где пользователи могут встретить друг друга. Система отслеживания движений головы позволяет вам бросить взгляд в любую сторону киберпространства. А что в этом пространстве можно делать и что с вами произойдет - зависит от используемой прикладной программы.
Некоторые высококачественные системы виртуальной реальности используют специальные манипуляторы, подобные мыши и джойстику, передвижения которого вверх и вниз интерпретируется датчиками как движение пользователя вперед и назад. Это устройства дают дополнительную возможность передвижения в виртуальной реальности. Элитарные системы виртуальной реальности предлагают также стереоскопические 3D - изображения и стереозвук, а также возможность общаться с другими пользователями в едином киберпространстве с помощью встроенных микрофонов. Сегодня лучшие аркадные видеоигры поддерживают виртуальную реальность, что позволяет игрокам бороться не с генерируемым программой противником, а друг с другом.
Предметный мир, окружающий нас - трехмерный. Наши глаза воспринимают объекты под разными углами: два независимых изображения анализируются мозгом, и в результате их сопоставления формируется образ предмета, его признаки и глубина изображения. Расстояние между глазами человека обычно составляет 6-7 см, и когда зрачки сосредотачиваются на предмете, левый и правый глаз фокусируются в этом направлении. В зависимости от расстояния до объекта угол обзора изменяется. Наши глаза и мозг анализируют расстояние, основываясь на различии между изображениями, получаемыми левым и правым глазом. Это различие называют параллаксом зрения. Именно с помощью этого эффекта и создаются трехмерные объемные изображения.
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 на "карточке" с таким "камушком", и тогда быстро и без лишних слов "доходит" насколько хороша аппаратная трансформация.