Компьютерная графика в реальном времени
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2017 г. ) |
Трехмерный (3D) компьютерная графика |
---|
Основы |
Основное использование |
Связанные темы |
Компьютерная графика в реальном времени или рендеринг в реальном времени — это подобласть компьютерной графики, ориентированная на создание и анализ изображений в реальном времени . Этот термин может относиться к чему угодно, от рендеринга графического пользовательского интерфейса приложения ( GUI в реальном времени ) до анализа изображений , но чаще всего используется в отношении интерактивной 3D компьютерной графики , обычно с использованием графического процессора (GPU). Одним из примеров этой концепции является видеоигра , которая быстро визуализирует изменяющуюся трехмерную среду, создавая иллюзию движения.
С момента своего изобретения компьютеры способны генерировать двумерные изображения, такие как простые линии, изображения и многоугольники , в реальном времени. Однако быстрая визуализация детальных 3D-объектов является сложной задачей для традиционных систем, основанных на архитектуре фон Неймана . Ранним решением этой проблемы было использование спрайтов — 2D-изображений , которые могли имитировать 3D-графику.
Сейчас существуют различные методы рендеринга , такие как трассировка лучей и растеризация . Используя эти методы и передовое оборудование, компьютеры теперь могут отображать изображения достаточно быстро, чтобы создавать иллюзию движения, одновременно принимая пользовательский ввод. Это означает, что пользователь может реагировать на визуализированные изображения в режиме реального времени, создавая интерактивный опыт.
Принципы компьютерной 3D-графики в времени реальном
Целью компьютерной графики является создание сгенерированных компьютером изображений или кадров с использованием определенных желаемых показателей. Одной из таких метрик является количество кадров, генерируемых за данную секунду. Системы компьютерной графики в реальном времени отличаются от традиционных (т. е. не в реальном времени) систем рендеринга тем, что графика не в реальном времени обычно основана на трассировке лучей . В этом процессе миллионы или миллиарды лучей отслеживаются от камеры к окружающему миру для детального рендеринга — эта дорогостоящая операция может занять часы или дни для рендеринга одного кадра.
Графические системы реального времени должны отображать каждое изображение менее чем за 1/30 секунды. Трассировка лучей слишком медленная для этих систем; вместо этого они используют технику z-буфера растеризации треугольника . В этом методе каждый объект разбивается на отдельные примитивы, обычно треугольники. Каждый треугольник позиционируется, поворачивается и масштабируется на экране, а аппаратное обеспечение растеризации (или программный эмулятор) генерирует пиксели внутри каждого треугольника. Эти треугольники затем разлагаются на атомарные единицы, называемые фрагментами , которые подходят для отображения на экране дисплея . Фрагменты рисуются на экране с использованием цвета, вычисляемого в несколько этапов. Например, текстуру можно использовать для «нарисования» треугольника на основе сохраненного изображения, а затем наложение теней может изменить цвета этого треугольника в зависимости от прямой видимости источников света.
Графика видеоигры [ править ]
Графика в реальном времени оптимизирует качество изображения с учетом ограничений по времени и оборудованию. Графические процессоры и другие достижения повысили качество изображения, которое может создавать графика в реальном времени. Графические процессоры способны обрабатывать миллионы треугольников за кадр, а современное оборудование класса DirectX / OpenGL способно генерировать сложные эффекты, такие как объемы теней , размытие движения и генерация треугольников , в режиме реального времени. Развитие графики в реальном времени подтверждается постепенным улучшением реальной графики игрового процесса и предварительно визуализированных роликов, традиционно встречающихся в видеоиграх. [1] Кат-сцены обычно визуализируются в реальном времени и могут быть интерактивными . [2] Хотя разрыв в качестве между графикой в реальном времени и традиционной автономной графикой сокращается, автономный рендеринг остается гораздо более точным.
Преимущества [ править ]
Графика в реальном времени обычно используется, когда интерактивность (например, обратная связь с игроком) имеет решающее значение. Когда в фильмах используется графика в реальном времени, режиссер имеет полный контроль над тем, что должно быть нарисовано в каждом кадре, что иногда может потребовать длительного принятия решений. В принятии таких решений обычно участвуют команды людей.
В компьютерной графике в реальном времени пользователь обычно управляет устройством ввода, чтобы влиять на то, что будет отображено на дисплее. Например, когда пользователь хочет переместить символ на экране, система обновляет положение персонажа перед рисованием следующего кадра. Обычно время отклика дисплея намного медленнее, чем у устройства ввода — это оправдано огромной разницей между (быстрым) временем отклика движения человека и (медленной) скоростью перспективы зрительной системы человека . Эта разница имеет и другие последствия: поскольку устройства ввода должны быть очень быстрыми, чтобы успевать за реакцией на движение человека, прогресс в устройствах ввода (например, нынешние [ когда? ] Wii Remote) обычно занимает гораздо больше времени, чем аналогичные достижения в устройствах отображения.
Еще одним важным фактором, управляющим компьютерной графикой в реальном времени, является сочетание физики и анимации . Эти методы во многом определяют, что будет рисоваться на экране, особенно где рисовать объекты на сцене. Эти методы помогают реалистично имитировать поведение реального мира ( временное измерение , а не пространственное измерение ), повышая степень реализма компьютерной графики.
Предварительный просмотр в реальном времени с помощью графического программного обеспечения , особенно при настройке световых эффектов , может повысить скорость работы. [3] Некоторые настройки параметров в программном обеспечении для генерации фракталов можно производить при просмотре изменений изображения в реальном времени.
Конвейер рендеринга [ править ]
Конвейер рендеринга графики («конвейер рендеринга» или просто «конвейер») является основой графики реального времени. [4] Его основная функция — рендеринг двухмерного изображения относительно виртуальной камеры, трехмерных объектов (объект, имеющий ширину, длину и глубину), источников света, моделей освещения, текстур и многого другого.
Архитектура [ править ]
Архитектуру конвейера рендеринга в реальном времени можно разделить на концептуальные этапы: применение, геометрия и растеризация .
Стадия подачи заявки [ править ]
Этап приложения отвечает за создание «сцен» или 3D-настроек, которые отображаются на 2D-дисплее. Этот этап реализуется в программном обеспечении, которое разработчики оптимизируют для повышения производительности. Этот этап может выполнять такую обработку, как обнаружение столкновений , методы ускорения, анимацию и обратную связь по усилию, в дополнение к обработке пользовательского ввода.
Обнаружение столкновений — это пример операции, которая будет выполняться на этапе приложения. Обнаружение столкновений использует алгоритмы для обнаружения и реагирования на столкновения между (виртуальными) объектами. Например, приложение может рассчитывать новые положения сталкивающихся объектов и обеспечивать обратную связь через устройство обратной связи по силе, такое как вибрирующий игровой контроллер.
Этап приложения также подготавливает графические данные для следующего этапа. Сюда входит анимация текстур, анимация 3D-моделей, анимация с помощью преобразований и морфинг геометрии. Наконец, он создает примитивы (точки, линии и треугольники) на основе информации о сцене и передает эти примитивы на этап геометрии конвейера.
Этап геометрии [ править ]
На этапе геометрии манипулируют многоугольниками и вершинами, чтобы вычислить, что рисовать, как это рисовать и где это рисовать. Обычно эти операции выполняются специализированным оборудованием или графическими процессорами. [5] Различия в графическом оборудовании означают, что «этап геометрии» фактически может быть реализован как несколько последовательных этапов.
Преобразование модели и представления [ править ]
Прежде чем окончательная модель будет показана на устройстве вывода, модель преобразуется в несколько пространств или систем координат . Преобразования перемещают объекты и манипулируют ими, изменяя их вершины. Трансформация — это общий термин для четырех конкретных способов манипулирования формой или положением точки, линии или фигуры.
Освещение [ править ]
Чтобы придать модели более реалистичный вид, при трансформации обычно устанавливают один или несколько источников света. Однако этого этапа невозможно достичь без предварительного преобразования 3D-сцены в пространство просмотра. В пространстве обзора наблюдатель (камера) обычно располагается в начале координат. При использовании правосторонней системы координат (которая считается стандартной) наблюдатель смотрит в направлении отрицательной оси Z, причем ось Y направлена вверх, а ось X — вправо.
Проекция [ править ]
Проекция — это преобразование, используемое для представления 3D-модели в 2D-пространстве. Двумя основными типами проекций являются ортогональная проекция (также называемая параллельной) и перспективная проекция . Основная характеристика ортогональной проекции заключается в том, что параллельные линии после преобразования остаются параллельными. Перспективная проекция использует концепцию, согласно которой, если расстояние между наблюдателем и моделью увеличивается, модель кажется меньше, чем раньше. По сути, перспективная проекция имитирует человеческое зрение.
Обрезка [ править ]
Отсечение — это процесс удаления примитивов, находящихся за пределами поля просмотра, чтобы облегчить этап растеризации. Как только эти примитивы будут удалены, оставшиеся примитивы будут преобразованы в новые треугольники, которые перейдут на следующий этап.
Отображение экрана [ править ]
Цель отображения экрана — выяснить координаты примитивов на этапе отсечения.
Этап растеризации [ править ]
На этапе растеризации применяется цвет и преобразуется графические элементы в пиксели или элементы изображения.
См. также [ править ]
Ссылки [ править ]
- ^ Спраул, В. Антон (2013). Как работает программное обеспечение: магия шифрования, компьютерной графики, поисковых систем и других повседневных технологий . Нет крахмального пресса. п. 86. ИСБН 978-1593276669 . Проверено 24 сентября 2017 г.
- ^ Вольф, Марк Дж. П. (2008). Взрыв видеоигр: история от PONG до PlayStation и не только . АВС-КЛИО. п. 86. ИСБН 9780313338687 . Проверено 24 сентября 2017 г.
- ^ Бирн, Джереми (2013). Цифровое освещение и рендеринг: Издание 3 . Новые гонщики. п. 442. ИСБН 9780133439175 . Проверено 24 сентября 2017 г.
- ^ Акенине-Мёллер, Томас; Эрик Хейнс; Нати Хоффман (2008). Рендеринг в реальном времени, третье издание: издание 3 . ЦРК Пресс. п. 11. ISBN 9781439865293 . Проверено 22 сентября 2017 г.
- ^ Бореско, Алексей; Евгений Шикин (2013). Компьютерная графика: от пикселей к программируемому графическому оборудованию . ЦРК Пресс. п. 5. ISBN 9781482215571 . Проверено 22 сентября 2017 г. [ мертвая ссылка ]
Библиография [ править ]
- Мёллер, Томас; Хейнс, Эрик (1999). Рендеринг в реальном времени (1-е изд.). Натик, Массачусетс: AK Peters, Ltd.
- Сальватор, Дэйв (21 июня 2001 г.). «3D-конвейер» . Extremetech.com . Экстремальные технологии. Архивировано из оригинала 17 мая 2008 года . Проверено 2 февраля 2007 г.
- Малхотра, Прия (июль 2002 г.). Проблемы, связанные с рендерингом виртуальных сред в реальном времени (магистратура). Блэксбург, Вирджиния: Технологический институт Вирджинии. стр. 20–31. hdl : 10919/35382 . Проверено 31 января 2007 г.
- Хейнс, Эрик (1 февраля 2007 г.). «Ресурсы рендеринга в реальном времени» . Проверено 12 февраля 2007 г.
Внешние ссылки [ править ]
- Портал РТР - урезанный «лучший» набор ссылок на ресурсы.