Введение в виртуальную реальность - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Как так получается, что на экране оживает почти настоящий, реальный мир, да еще и в 3D? Люди, которые в первый раз встречаются с интерактивным 3D, обычно испытывают шок. Увиденное не вписывается ни в какие их представления о современных достижениях науки и техники. И хотя им показываешь "Властелина колец" и говоришь, что многие сцены фильма сделаны на компьютере, -- их это не особо впечатляет. По своей наивности они думают, что все по-прежнему делается рисованной мультипликацией. Но увидят они какой-нибудь столетний Doom -- и поражаются.
Не важно, насколько большим и насыщенным будет виртуальный 3D мир. Компьютер может отображать его только одним способом: помещая пиксели на 2D экран. Как изображение на экране становится реалистичным, и как сцены становятся похожими на те, которые мы видим в реальном мире? Сначала мы посмотрим, как придается реалистичность одному объекту. Потом мы перейдем уже ко всей сцене. И напоследок, мы рассмотрим, как компьютер реализует движение: реалистичные объекты движутся с реалистичными скоростями.
Вы смотрите на экран монитора, имеющего два измерения: высоту и ширину. Но когда вы смотрите мультик или играете в современные игры, экран вам кажется трехмерным. И что больше всего зачаровывает, можно наблюдать на экране реальный сегодняшний мир, мир в котором мы будем жить завтра, или мир, существующий только в воображении создателей компьютерной игрушки. И все эти миры появляются на одном и том же экране, который вы, возможно, минуту назад использовали для печати отчета о текущей котировке акций. Как же так получается, что компьютер обманывает ваше зрение, и вы невольно считаете, что за плоским экраном существует трехмерное пространство? Как получается, что программисты игр убеждают нас в том, что мы наблюдаем за реальными персонажами в их реальной среде обитания? В этой статье мы расскажем о хитрых приемах дизайнеров трехмерной графики.
Что делает картинку трехмерной?
Картинка, кажущаяся трехмерной (3D) должна иметь три измерения: высоту, ширину и глубину. Двумерная картинка (2D) имеет два измерения: высоту и ширину. Некоторые картинки изначально двумерны. Многие простые символы должны быть понятны с первого взгляда. Поэтому, чем проще они нарисованы, тем лучше. Вот главное отличие 2D графики от 3D: двумерная графика хороша для выражения чего-либо простого за максимально короткое для понимания время. Трехмерная графика может дать больше информации, но на ее усвоение требуется большее время. Если перевод двумерной картинки в трехмерный вид сводится к добавлению некоторого количества информации, то перевод 3D статичной картинки в движущееся изображение требует намного большего.
Для большинства из нас компьютеры или современные приставки являются наиболее привычным способом знакомства с трехмерной графикой. Компьютерные игры или видеоролики изготавливаются с помощью созданных компьютером картинок. Обычно процесс создания реалистичной трехмерной сцены разбивается на три важных шага:
- - создание виртуального 3D мира. - выбор части мира, которая будет демонстрироваться на экране. - задание представления для каждого пикселя на экране для максимальной реалистичности изображения.
Виртуальный 3D мир это не просто эскиз такого мира. Чтобы вам лучше в этом разобраться, приведем пример из реального мира. Рассмотрим вашу руку и стол под ней. Ваша рука обладает характеристиками, которые определяют способы движения руки и ее вид. Пальцы примыкают к ладони и послушно сгибаются в суставах. Если шлепнуть рукой по столу, то он не брызнет во все стороны, так как стол всегда твердый и цельный. Ваша рука не может пройти сквозь стол. Всю эту информацию нельзя получить, просто взглянув на рисунок предмета. Но сколько бы фотографий вы ни сделали, на любой из них ваши пальцы будут сгибаться в суставах, и примыкать к ладони, стол будет всегда твердым, а не жидким. Так ведут себя вещи в реальном мире, и они всегда будут себя так вести. Объекты же виртуального трехмерного мира не существуют в природе, в отличие от вашей руки. Все они - искусственные, а все их свойства задаются программой. Разработчики используют специальные инструменты для аккуратного описания 3D мира, чтобы каждый объект вел себя, так как ему положено.
Какую часть виртуального мира показать на экране?
В любой момент экран демонстрирует только крошечную частичку виртуального трехмерного мира компьютерной игры. Показываемая часть определяется способом задания мира, направлением, куда вы пожелаете в нем пойти и точкой, в которую вы будете при этом смотреть. Независимо от того, какой путь вы выберите: вперед или назад, вверх или вниз, вправо или влево, виртуальный 3D мир вокруг вас определит, что вы увидите из вашей позиции по направлению вашего взгляда. Смысл увиденного вами не должен меняться от сцены к сцене. Если вы смотрите на объект с одной и той же дистанции, то он должен сохранять те же размеры независимо от направления взгляда. Способ движения и вид каждого объекта должны убеждать вас в том, что он имеет постоянную массу, что он всегда твердый или мягкий, жесткий или гибкий и т. д. Программисты, создающие компьютерные игры, затрачивают огромные усилия на описание 3D мира, чтобы вы могли восхищаться этим миром и не встречать в нем ничего, что бы разубедило вас в его реальности. Вы же не хотите увидеть, как два твердых объекта проходят друг сквозь друга? Это сразу бы напомнило вам об иллюзорности виртуального мира.
И третий шаг включает в себя, по крайней мере, столько же компьютерных вычислений, как и первые два шага вместе взятые, если не больше. Причем этот шаг должен выполняться в реальном времени в играх и видеороликах
Прежде чем изображение станет реалистичным, объекты проходят несколько стадий обработки. Самые важные стадии это создание формы (shape), обтягивание текстурами, освещение, создание перспективы, глубины резкости (depth of field) и сглаживания (anti-aliasing).
Так как же создается это третье измерение? Есть два основных подхода. Можно сделать псевдотрехмерные сэмплы, а потом обработать их по принципам двухмерной графики, лишь изредка касаясь простейших законов третьего измерения.. А можно создать модель трехмерного мира, а потом спроецировать часть его на плоскость экрана. Так делают все современные трехмерные игры.
Однако трехмерный мир надо как-то смоделировать. Пользоваться при этом наработками из растрового 2D -- неудобно. Графика будет тяжеловесной и тормозной. Нужен другой способ... Постойте, а какая у нас самая прогрессивная технология в 2D? Конечно же, векторная графика. И весит мало, и обсчитывается сравнительно быстро. Есть у нее и свои недостатки, но достоинств больше. Почти полное переложение основ векторной графики в 3D -- это технология NURBS (более подробно она рвссмотрена в разделе ). А самый распространенный способ моделирования 3D -- частичное переложение основ векторной графики. В целом это называется 3D конвейер. Процесс построения 3D-изображения можно разделить на три последовательных этапа. На первом этапе объект преобразуется в мозаичную модель, т. е. происходит его разделение на множество многоугольников (полигонов). Следующий этап включает в себя геометрические преобразования и установки освещения. Наконец, заключительный этап, так называемый "рендеринг" (rendering), который является наиболее важным для качества 3D-изображения, создает двумерное изображение из полученных на предыдущих этапах многоугольников. Любая трехмерная модель (из которых, в конечном счете, и состоит виртуальный мир) представляется в виде некоторого числа пересекающихся плоскостей. Излишки плоскостей обрезаются. В итоге остаются двухмерные многоугольники, помещенные в трехмерную систему координат. Такой многоугольник называется полигоном.
Похожие статьи
-
Пиксели в 3D - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Как известно, любая двумерная картинка, которая выводится на экран монитора, состоит из пикселей. Само слово pixel происходит от picture element --...
-
Растеризация - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Последний этап конвейера называется растеризацией и обозначается буквой "R". Это единственный этап конвейера, который даже в старых акселераторах...
-
Где не ступала нога Безье... Какими бы безумно-заоблачными не были мощности акселераторов, все равно они смогут обработать только ограниченное число...
-
Некоторые хитрости - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Для повышения реалистичности изображения разработчики игр. Сперва эта технология применялась для уменьшения нагрузки на акселератор или процессор (когда...
-
Полигоны и остальное Вот с полигоном сложилась некая путаница. Классики учат, что полигон -- это любой выпуклый многоугольник, а, программисты, которые...
-
Видеокарта Видеокарта состоит из двух частей. Это графический процессор (самая большая микросхема видеокарты) и память. Практически это такая же память,...
-
Фильтрация и MIP Mapping - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
При работе с текстурами существует немало проблем. У экрана есть свое разрешение и определенное количество пикселей, которые на нем можно отобразить в...
-
Каждый этап конвейера обозначается какой-то буквой. Официально первый этап конвейера называется тесселяция и обозначается буквой "T". Однако программисты...
-
Все мы пользуемся продуктами высоких технологий. Прогресс -- вещь замечательная. Не будь прогресса, не было бы новых интересных компьютерных игр, не...
-
Векторная графика - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Если в растровой графике базовым элементом изображения является точка, то в векторной графике - линия. Линия описывается математически как единый объект,...
-
Трехмерная графика - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Трехмерная графика нашла широкое применение в таких областях, как научные расчеты, инженерное проектирование, компьютерное моделирование физических...
-
Что это такое 3D-акселератор -- сложная штуковина. Несколько десятков миллионов вентилей в основном кристалле, еще несколько -- в сервисных (DDR, RAMDAC...
-
9. Антиалиасинг - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Ну и напоследок о том, о чем мы упомянули в начале, о том красивом слове, которым очень часто любят щегольнуть игроки, причем далеко не всегда понимая...
-
Glide, Direct3D - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
В 1995 году на свет появился легендарный 3D-акселератор 3dfx Voodoo. Это был первый массовый акселератор. Но на старых играх, не созданных для Voodoo,...
-
Графика в компьютере - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и...
-
Вместо эпилога: год 2004 - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
NVIDIA GeForce256, GeForce2 В новых драйверах Detonator, серии 5.хх, NVIDIA раньше конкурентов реализовала возможность принудительного включения...
-
Революция в технологии - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Компания 3dfx выпускает карту VooDoo Banshee, в которой 3D-часть от VooDoo2 была дополнена 2D. Скорость нового творения оставалась по-прежнему высокой,...
-
OpenGL - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
OpenGL -- это универсальная, аппаратно - независимая библиотека, которая поддерживает разнообразные 3D-объекты и конструкции, начиная с примитивов и...
-
Процедурные текстуры - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Наверняка вы видели так называемые "демки" (речь идет не о демо-версиях игр, а о своеобразных программах очень маленького размера (до 64 кб), которые...
-
Текстура как она есть - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
При описании процесса рендеринга не был затронут один важный этап -- текстурирование. Не будь текстур, играли бы мы сейчас с вами в экшены с квадратными...
-
Цвет и цветовые модели - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
В компьютерной графике применяют понятие цветового разрешения (другое название - глубина цвета). Оно определяет метод кодирования цветовой информации для...
-
Компания nVidia - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
NVidia Corporation (американская компания) была основана в январе 1993 года Дженсеном Хуангом, Крисом Малаховски и Куртисом Приэмом. Штаб-квартира...
-
Первый акселератор Сегодня разница между словами видеокарта и видеоакселератор нивелировалась, и эти слова стали синонимами. Так было не всегда. Давайте...
-
Фрактальная графика Фрактальная графика основана на математических вычислениях. Базовым элементом фрактальной графики является сама математическая...
-
Компания ATI - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Самым старым игроком на рынке видеокарт является компания ATI (Array Technology Industry). Основана она была в 1985 году эмигрантом из Китая Квок-Юэн Хо....
-
В 1920 году была разработана цветовая пространственная модель CIE Lab (Communication Internationale de I'Eclairage - международная комиссия по совещанию....
-
Форматы графических данных В компьютерной графике применяют, по меньшей мере, три десятка форматов файлов для хранения изображений. Но лишь часть из них...
-
Введение - Компьютерная графика
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и...
-
Литература - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
1. http://www. worldofpc. ru/vhis. html 2. http://www. izcity. com/data/hard/print_article528.htm 3. http://www. comprice. ru/arch/2005-14.phtml 4....
-
Цветовая модель HSB - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)
Цветовая модель HSB разработана с максимальным учетом особенностей восприятия цвета человеком. Она построена на основе цветового круга Манселла. Цвет...
-
Виды компьютерной графики, Фрактальная графика, Трехмерная графика - Компьютерная графика
Фрактальная графика Фрактальная графика основана на математических вычислениях. Базовым элементом фрактальной графики является сама математическая...
-
Метод конечных элементов (МКЭ) жесткости возник в аэрокосмической отрасли. Исследователи рассматривали различные подходы к анализу сложных частей...
-
Обзор структуры каталогов, Введение - Операционная система Linux
В этой главе рассмотрены наиболее важные составляющие структуры каталогов системы Linux, основанные на стандарте FSSTND. Также в общих чертах описывается...
-
Помимо концепции будущей системы бюджетирования, в рамках решения задачи разработки проекта "Бюджетное планирование и отчетность" должен быть разработан...
-
Введение - Обзор графических редакторов
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и...
-
Фрактал - это рисунок, который состоит из подобных между собой элементов. Существует большое количество графических изображений, которые являются...
-
В связи с выросшей потребностью в доступе к сети Интернет в настоящее время встает вопрос в грамотной организации сети, способной обрабатывать большие...
-
В качестве доступного инструментария были рассмотрены две открытые кроссплатформенные библиотеки для разработки C++ приложений WxWidgets и Boost ,...
-
Современные технологии обработки Больших данных Большой проект бюджетирование автоматизация С приходом новых технологий, инструментов и средств...
-
МОНИТОРЫ - Аппаратные средства IBM PC
До пятидесятых годов компьютеры выводили информацию только на печатающие устройства. Интересно отметить, что достаточно часто компьютеры тех лет...
Введение в виртуальную реальность - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)