Компьютерная графика в реальном времени - Real-time computer graphics

Виртуальная реальность рендер реки с 2000 года
Виртуальная среда на Университет Иллинойса, 2001
Музыкальные визуализации генерируются в реальном времени

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

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

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

Принципы трехмерной компьютерной графики в реальном времени

Цель компьютерной графики - создать компьютерные изображения, или же кадры, используя определенные желаемые показатели. Одним из таких показателей является количество сгенерированные кадры в заданную секунду. Системы компьютерной графики в реальном времени отличаются от традиционных систем рендеринга (т. Е. Не в реальном времени) тем, что графика не в реальном времени обычно полагается на трассировка лучей. В этом процессе миллионы или миллиарды лучей прослеживаются от камера к Мир для детального рендеринга - эта дорогостоящая операция может занять несколько часов или дней для визуализации одного кадра.

Рендеринг ландшафта сделано в 2014 году

Графические системы реального времени должны отображать каждое изображение менее чем за 1/30 секунды. Трассировка лучей слишком медленная для этих систем; вместо этого они используют технику z-буфер растеризация треугольников. В этой технике каждый объект разбивается на отдельные примитивы, обычно треугольники. Каждый треугольник получает позиционируется, вращается и масштабируется на экране и растеризатор оборудование (или программный эмулятор) генерирует пиксели внутри каждого треугольника. Эти треугольники затем разлагаются на атомарные единицы, называемые фрагменты которые подходят для отображения на экран монитора. Фрагменты рисуются на экране с использованием цвета, который вычисляется в несколько этапов. Например, текстура можно использовать для «раскрашивания» треугольника на основе сохраненного изображения, а затем отображение теней может изменять цвета этого треугольника в зависимости от прямой видимости источников света.

Графика видеоигр

Графика в реальном времени оптимизирует качество изображения с учетом временных и аппаратных ограничений. Графические процессоры и другие усовершенствования повысили качество изображения, которое может создавать графика в реальном времени. Графические процессоры способны обрабатывать миллионы треугольников за кадр, а текущие[когда? ] DirectX 11 /OpenGL Оборудование класса 4.x способно создавать сложные эффекты, такие как теневые объемы, размытие движения, и генерация треугольника, в реальном времени. Развитие графики в реальном времени подтверждается постепенными улучшениями между фактическими геймплей графика и предварительно обработанные катсцены традиционно встречается в видеоиграх.[1] Катсцены обычно отображаются в реальном времени и могут быть интерактивный.[2] Хотя разрыв в качестве между графикой реального времени и традиционной автономной графикой сокращается, автономный рендеринг остается гораздо более точным.

Преимущества

Все тело в реальном времени и отслеживание лица

Графика в реальном времени обычно используется, когда важна интерактивность (например, обратная связь с игроком). Когда в фильмах используется графика в реальном времени, режиссер имеет полный контроль над тем, что должно быть нарисовано в каждом кадре, что иногда может потребовать длительного принятия решений. Обычно в принятии этих решений участвуют группы людей.

В компьютерной графике в реальном времени пользователь обычно управляет устройством ввода, чтобы влиять на то, что будет нарисовано на дисплее. Например, когда пользователь хочет переместить символ на экране, система обновляет положение персонажа перед рисованием следующего кадра. Обычно время отклика дисплея намного меньше, чем у устройства ввода - это оправдано огромной разницей между (быстрым) временем отклика на движение человека и (медленным) перспективная скорость зрительной системы человека. Это различие имеет и другие эффекты: поскольку устройства ввода должны быть очень быстрыми, чтобы не отставать от реакции человека, достижения в устройствах ввода (например, текущие[когда? ] Wii Remote) обычно занимает гораздо больше времени, чем аналогичные достижения в устройствах отображения.

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

Предварительный просмотр в реальном времени с графическое программное обеспечение, особенно при настройке световые эффекты, может увеличить скорость работы.[3] Некоторые настройки параметров в ПО для генерации фракталов может производиться при просмотре изменений изображения в реальном времени.

Конвейер рендеринга

В конвейер рендеринга графики («конвейер рендеринга» или просто «конвейер») - это основа графики в реальном времени.[4] Его основная функция - визуализировать двухмерное изображение по отношению к виртуальной камере, трехмерным объектам (объект, имеющий ширину, длину и глубину), источникам света, моделям освещения, текстурам и многому другому.

Архитектура

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

Стадия подачи заявки

Этап приложения отвечает за создание «сцен» или настроек 3D, которые отображаются на 2D-дисплее. Этот этап реализован в программном обеспечении, которое разработчики оптимизируют для повышения производительности. На этом этапе может выполняться такая обработка, как обнаружение столкновения, методы ускорения, анимация и обратная связь по усилию, в дополнение к обработке пользовательского ввода.

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

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

Этап геометрии

Этап геометрии манипулирует многоугольниками и вершинами, чтобы вычислить, что рисовать, как рисовать и где рисовать. Обычно эти операции выполняются специализированным оборудованием или графическими процессорами.[5] Различия в графическом оборудовании означают, что «этап геометрии» может быть реализован в виде нескольких последовательных этапов.

Преобразование модели и вида

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

Освещение

Чтобы придать модели более реалистичный вид, во время трансформации обычно устанавливаются один или несколько источников света. Однако этот этап не может быть достигнут без предварительного преобразования трехмерной сцены в пространство обзора. В пространстве обзора наблюдатель (камера) обычно помещается в начало координат. При использовании правша В системе координат (которая считается стандартной) наблюдатель смотрит в направлении отрицательной оси Z, при этом ось Y указывает вверх, а ось X - вправо.

Проекция

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

Вырезка

Вырезка - это процесс удаления примитивов, находящихся за пределами окна просмотра, для облегчения этапа растеризации. После удаления этих примитивов оставшиеся примитивы будут преобразованы в новые треугольники, которые достигнут следующего этапа.

Отображение экрана

Цель отображения экрана - узнать координаты примитивов на этапе отсечения.

Этап растеризатора

Этап растеризации применяет цвет и превращает графические элементы в пиксели или элементы изображения.

История

Компьютерная анимация существует с 1940-х годов, но только в 70-х годах были реализованы 3D-технологии.

Первый шаг к 3D-графике, но не к графике в реальном времени, был сделан в 1972 г. Эдвин Кэтмелл и Фред Парк. Их реализация включала компьютерная рука это было создано с использованием каркасные изображения, сплошное затенение и, наконец, плавное затенение. В 72 и 1974 годах Парк снимал на видео Затушеванный по Гуро женское лицо, изменившее свое выражение.

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

Смотрите также

Рекомендации

  1. ^ Спраул, В. Антон (2013). Как работает программное обеспечение: магия шифрования, компьютерной графики, поисковых систем и других повседневных технологий. Пресс без крахмала. п. 86. ISBN  1593276664. Получено 24 сентября 2017.
  2. ^ Вольф, Марк Дж. П. (2008). Взрыв компьютерных игр: история от PONG до Playstation и не только. ABC-CLIO. п. 86. ISBN  9780313338687. Получено 24 сентября 2017.
  3. ^ Бирн, Джереми (2013). Цифровое освещение и рендеринг: издание 3. Новые всадники. п. 442. ISBN  9780133439175. Получено 24 сентября 2017.
  4. ^ Акенин-Мёллер, Томас; Эрик Хейнс; Нэти Хоффман (2008). Рендеринг в реальном времени, третье издание: издание 3. CRC Press. п. 11. ISBN  9781439865293. Получено 22 сентября 2017.
  5. ^ Боресько Алексей; Евгений Шикин (2013). Компьютерная графика: от пикселей до оборудования с программируемой графикой. CRC Press. п. 5. ISBN  9781482215571. Получено 22 сентября 2017.[мертвая ссылка ]

Библиография

внешняя ссылка

  • Портал РТР - урезанный "лучший" набор ссылок на ресурсы