Студопедия — Тема 6.2. Построение трехмерных изображений
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Тема 6.2. Построение трехмерных изображений






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

Давайте сперва рассмотрим немного историю развития трехмерной графики на персональном компьютере от самых первых "трехмерных:)" игр и до наших дней. Затем мы поговорим с Вами о том, как строится трехмерное изображение на компьютере, а уже после поговорим собственно о современных видеоплатах и о том, какие возможности в этих платах реализованы.

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

Другие же игры, например авиасимулятор "F-19" гордо назывались "трехмерными", и в них виртуальность представляла собой конструкцию из линий и многоугольников, координаты которой обсчитывались с изменением игровой ситуации, и затем вся она проецировалась на плоскость, совпадавшую с плоскостью экрана.

Два этих типа игр были просты в написании, а главное - были по силам тогдашним процессорам и видеокартам.

С появлением 386 процессоров программы начали использовать "защищенный" режим, обеспечивающий простой доступ к объемам памяти, большим чем пресловутый 640 килобайт. В связи с этим игры получили возможность создавать более сложные виртуальные миры.

Немного опередила развитие компьютеров фирма Id Software, которая выпустила сначала "Catacomb Abyss", а затем и "Wolfenstein 3D" - игры, которые считаются основоположниками жанра 3D-action. Игры эти шли еще на 286 процессорах, и являются ярким примером нового способа изображения виртуальности - ТЕКСТУРИРОВАНИЕ.

Во-первых, при этом способе, стены коридора, по которым бегает главный герой - это не просто одноцветные прямоугольники, а прямоугольные растровые картинки (то есть, состоящие из точек), например, рельеф кирпичной стены, или чей-нибудь портрет. Во-вторых, изображения врагов, которых игрок видел "глазами" персонажа, также были растровыми. Эффект присутствия в игре создавало масштабирование - при приближении к стене ее изображение увеличивалось, и соответствующим образом масштабировался рисунок ее текстуры. Но в этом же содержится и большой минус, который можно пояснить так: предположим, мы стоим лицом к стене на таком расстоянии от нее, на котором одна точка текстуры равняется одной точке экрана. Так как обычно для текстур использовались массивы 64х64 точки, в данном случае текстура на экране будет квадратом 64х64. Если уменьшать это расстояние, "подходить" к стене, точки текстуры должны "увеличиваться" - то есть, текстура должна занимать уже больший квадрат, прорисовывая одну и ту же точку несколько раз. Если уменьшить расстояние в два раза - каждая точка превратится в квадрат 2х2 пикселя, чтобы заполнить на экране квадрат 128х128. Ну а если подойти к стене вплотную, на экране мы увидим несколько больших разноцветных квадратов. Из-за этого и при удалении от стены или от любого монстра тот превращался в несколько маленьких квадратиков, что выглядело не очень красиво.

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

Со временем появлялись новые типы процессоров. 486 уже предъявляли повышенные требования к видеокартам, и те также начали развиваться в сторону увеличения быстродействия.

Появлялись новые типы игр - полутрехмерный "DOOM", полностью трехмерный "Descent", появилось понятие "z-buffer".

Это метод удаления невидимых поверхностей при изображении сложных трехмерных сцен. Работает примерно так: есть два массива, в одном из которых хранится изображение, выводимое на экран (буфер кадра), в другом - расстояние до объектов от плоскости экрана (буфер глубины). Каждый предмет в сцене разлагается в растр (представляется набором точек), и для каждой точки считается расстояние до нее от экрана. И в буфер кадра заносятся, естественно, те точки, расстояние от которых до экрана минимально. После этого буфер кадра выводится на экран, и цикл повторяется. Метод прост в реализации, и потому используется почти во всех трехмерных играх.

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

В один прекрасный для любителей IBM PC день, фирма 3Dfx Interactive, которая успешно делала видеочипы для игровых автоматов, решила расширить свой рынок, и перейти на PC. Это у нее получилось - да так хорошо, что только через полгода после выхода первого 3D-ускорителя, на выставке E3 этого года, некоторые фирмы смогли показать проекты своих ускорителей, которые только приближались по быстродействию к карте от 3Dfx. Настал век аппаратной поддержки игр. В чем преимущество аппаратного акселератора, т.е. видеочипа, который сам способен обрабатывать трехмерные объекты? Если все операции по обработке трехмерного мира до выхода аппаратных акселераторов делал процессор, то теперь большинство этих функций можно переложить на специализированный процессор, который, безусловно, лучше и быстрее будет справляться с задачами обработки трехмерного видео. Но выигрыш в скорости - только одна сторона медали. Есть и другая - КАЧЕСТВО. Дело в том, что специализированный чип акселератора умеет применять множество новых технологий и эффектов, нацеленных не только на ускорение расчета трехмерной сцены, но и на повышение качества получающейся на экране картинки. Применяемые технологии, например, позволили снять основную описанную выше проблему текстурирования (превращение текстур в несколько цветных квадратов при приближении наблюдателя к ним) а также позволяли многое другое.

Теперь мы рассмотрим основные принципы построения трехмерной сцены так, как это делают современные видеоакселераторы.







Дата добавления: 2015-08-17; просмотров: 773. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия