И мир стал трехмерным часть 1
 

Изображения, которыми бомбардируют нас телевидение, кино, а теперь и персональные компьютеры, наглядно демонстрируют мощь современной 3D-графики. Когда мы сталкиваемся с созданными компьютерами персонажами мультфильмов или сражаемся не на жизнь, а насмерть с имперскими силами в компьютерных играх из серии "Звездных войн", мы желаем видеть на экране как можно более реалистичную графику. Мы хотим почувствовать себя частью виртуальных миров, возникающих на экранах наших компьютеров.

Недавний взрыв интереса к домашним компьютерам во многом связан с тем, что сегодня у пользователей даже среднего достатка появилась возможность сосредоточить на своем столе вычислительную мощь, всего десять лет назад обеспечивавшуюся исключительно суперкомпьютерами. Создаваемые Голливудом сюжеты и персонажи спустя всего несколько месяцев предлагают нам подключиться к ходу событий и поуправлять ими.

Волна передовых технологий и значимых событий в области трехмерных графических акселераторов для РС, способность массовых компьютеров создавать исчерпывающе полные виртуальные миры, общение с которыми происходит в реальном времени, сегодня привлекли внимание многих компаний и стали главнейшим направлением исследований и производства для них. Таких, например, как Diamond Multimedia, чьими материалами я с благодарностью воспользовался при подготовке предлагаемой вам статьи.

И все эти великие технологические достижения с каждым днем становятся все доступнее рядовым домашним и корпоративным пользователям РС. Компьютерные игры, цифровые мультимедийные издания и даже обычные бизнес-приложения, в конце концов, будут широко использовать 3D-графику. 3D-графика упростит применение компьютеров, сделает управление ими, путешествия по сети Интернет и работу с повседневными приложениями более наглядными и не требующими какой-либо предварительной подготовки. Не говоря уже о том, что 3D-графика обеспечит ни с чем не сравнимое удовольствие от компьютерных развлечений.

Скромные по размерам, но гениальные по заложенным в них идеям кремниевые чипы, которые призваны обеспечить наступление эры "визуальных" вычислений, уже появились на рынке, и их становится все больше. Подсистемы 3D-графики сегодня разрабатываются с учетом потребности в решении на самых обычных компьютерах таких вычислительно-интенсивных задач, как манипулирование в реальном времени полностью визуализированными трехмерными объектами. Ускорение обработки трехмерных изображений, в чем сошлись все ведущие мировые разработчики, должно выполняться аппаратным путем. Это позволит придать жизненность виртуальным 3D-сценам, сделает такие эффекты, как текстуры, почти осязаемыми, атмосферу - практически пригодной для дыхания, а свет - ослепительным в своем сиянии или передающим тончайшие нюансы сгенерированного компьютером мира.

Цель, преследуемая разработчиками 3D-акселераторов, - придать мультимедиа истинную интерактивность.

Введение

Мир не плоский. Он и не одноцветный. Он и не идеально ровный. Это место, полное всевозможных цветов, кое-где сухое, а в других местах мокрое. В нем полно неровностей и возвышенностей, но попадаются и ровные, как стол, участки. И все это воздействует на наши чувства.

Компьютеры часто пытаются вызвать у нас те же ощущения, что возникают от реального мира, помещая его копию на свои экраны. До последних технологических достижений 3D-графика была знакома нам скорее по произведениям писателей-фантастов, которые, как всегда, чуть раньше других сумели предсказать, что в скором времени появится на наших мониторах. Сегодня компьютерные пользователи готовы и морально и материально к тому, чтобы на своих компьютерах получить удовольствие от общения с эффектами, которые недавно были доступны только осыпанным финансами голливудским волшебникам.

Сегодня компьютеры становятся самыми простыми в управлении машинами, созданными человеком. Экран дисплея открывает небольшой проход в огромный мир информации. Только визуальные коммуникации из всех существующих между человеком и машиной вписываются в ограниченное пространство этого окна. Отлично знакомые нам графические интерфейсы приложений напичкивают информацией все доступное им место, но они ограничены шириной и высотой экрана. 3D-графика не страдает от этого, поскольку имеет еще одно измерение - глубину. Прибавление к компьютерной графике третьего измерения резко увеличивает количество информации, в любой момент доступной пользователю. Виртуальными 3D-мирами проще управлять, чем плоскими 2D-окнами обычных графических интерфейсов приложений: они отражают реальный мир.

Редкие люди нуждаются в плоской двумерной карте, чтобы ходить по собственному дому. Придавая графике глубину, мы создаем модель мира, который можно исследовать теми же интуитивно привычными нам методами, какими мы познаем окружающий нас реальный мир. Итак, 3D-графика - это не просто попытка как можно ближе к жизни воспроизвести окружающее на экране компьютера, это еще и гораздо более доступный и эффективный путь для тех пользователей, которые хотят с максимальной отдачей общаться со своими компьютерами.

Цена, которую приходится платить за 3D-графику реального времени на персональном компьютере, в первую очередь относится к его аппаратному обеспечению. 3D-графика реального времени требует интенсивных вычислений, и хотя процессоры Pentium II уже зарекомендовали себя как самые быстрые, им по-прежнему необходим помощник - графический сопроцессор. Конечно, для реализации 3D-графики можно обойтись вычислительными способностями одного центрального, или хост-процессора, то есть пойти чисто программным путем, но это неминуемо наложит ограничения на реалистичность любой трехмерной сцены.

Аппаратное ускорение означает, что приложения могут свалить выполнение 3D-функций на специализированный сопроцессор и за счет этого увеличить сложность и уровень детализации трехмерных сцен, одновременно повысив скорость их просчета и, значит, интерактивность 3D-графики.

Модель

Для отображения на компьютере 3D-изображений требуется выполнить серию вычислительных процессов (обычно ее называют 3D-конвейером) и только потом перевода полученных результатов в двумерную графику, пригодную для вывода на экран монитора.

Первоначально объект представляется в виде набора точек, или значений координат в трехмерной координатной системе. Трехмерная координатная система имеет оси ширины (горизонтальная), высоты (вертикальная) и глубины, обычно условно называемые осями x, y и z. Объект - это может быть дом, человек, автомобиль, самолет или 3D-мир в целом - описывается координатами, которые задают расположение в пространстве его узловых точек (вершин).

Если координаты точек соединить линиями, получается то, что известно как проволочная модель объекта (см. рис. 1), поскольку видны только края многоугольников, передающих с заданной степенью приближения сложную форму реального объекта. Проволочная модель очерчивает поверхности, которые надо заполнить цветом, текстурами, наложить на них тени и световые блики, чтобы получить реалистичное трехмерное изображение.

Даже самое простое описание 3D-конвейера со всей очевидностью демонстрирует, как много вычислений надо выполнить компьютеру, чтобы визуализировать трехмерные объекты для показа на двумерном экране (см. рис. 2). А представьте себе, насколько больше связанных с координатной системой вычислений совершается, когда объекты перемещаются в пространстве.

Роль API-интерфейсов

Интерфейсы прикладного программирования (Applications Programming Interface, API) разрабатываются для выполнения функций 3D-конвейера чисто программным путем, но они в то же время способны воспользоваться обеспечиваемыми аппаратными 3D-ускорителями, как только те окажутся в системе. Если 3D-акселератор имеется, интерфейс API пользуется его функциональными возможностями, но если такого устройства в компьютере нет, API все равно сохраняет работоспособность приложений, так как оптимизирован для работы на самых общих по конфигурации системах.

Чтобы громадное число программ 3D-графики могло воспользоваться услугами почти столь же большого числа выпускаемых компьютерной индустрией 3D-акселераторов, необходимо, чтобы посредником между ними стали интерфейсы API.

Развлекательные программы поддерживаются интерфейсами Direct3D от Microsoft, Renderware от Criterion, BRender от Argonaut и 3DR от Intel, но этими четырьмя именами дело не ограничивается. Компания Apple вступила в борьбу с ними со своим интерфейсом Quickdraw 3D. Среди профессиональных приложений, а в последнее время и в игровом мире, доминирует интерфейс OpenGL, который работает под системой Windows NT. SoftImage - популярное приложение анимации и 3D-дизайна, работающее на рабочих станциях Silicon Graphics, проложило путь для перевода многих приложений для рабочих станций "хай-энд" на персональные компьютеры с Windows NT. Фирма Autodesk, крупнейший в мире производитель программного обеспечения для САПР, разработала свой интерфейс API, назвав его Heidi...

Доступность API-интерфейсов 3D-графики, которые поддерживаются множеством графических подсистем и многими приложениями, отражает растущий спрос на аппаратное 3D-ускорение, чтобы строить системы, работающие в реальном времени.

В мире РС основной движущей силой в этом направлении являются развлекательные программы и игры, но базирующиеся на Windows NT приложения, переходящие на РС с высокопроизводительных рабочих станций, также подпитывают разработки новых, очень мощных графических подсистем для профессиональной 3D-графики.

В свою очередь, существующие в Интернет приложения надеются получить выгоду от использования третьего измерения, позволяющего повысить управляемость и наглядность представления информации. Наконец, крупнейшим потенциальным потребителем онлайновых виртуальных 3D-коммуникаций является World Wide Web. Доступ ко многим ее ресурсам существенно упростится (но ускорится ли?!), если Паутина раскинется в 3D-вселенной.

 
Автор: Роман Соболенко
 
Оригинал статьи: http://woweb.ru/publ/46-1-0-563