stringtranslate.com

Программный рендеринг

Программный рендерер, работающий на устройстве без графического процессора

Программный рендеринг — это процесс генерации изображения из модели с помощью компьютерного программного обеспечения. В контексте рендеринга компьютерной графики программный рендеринг относится к процессу рендеринга, который не зависит от графического оборудования ASIC , такого как графическая карта . Рендеринг происходит полностью в CPU . Рендеринг всего с помощью (универсального) CPU имеет главное преимущество в том, что он не ограничен (ограниченными) возможностями графического оборудования, но недостатком является то, что для получения той же скорости требуется больше транзисторов.

Рендеринг используется в архитектуре, симуляторах, видеоиграх, фильмах и телевизионных визуальных эффектах и ​​визуализации дизайна. Рендеринг является последним шагом в процессе анимации и придает окончательный вид моделям и анимации с помощью визуальных эффектов, таких как затенение, наложение текстур, тени, отражения и размытие движения. [1] Рендеринг можно разделить на две основные категории: рендеринг в реальном времени (также известный как онлайн-рендеринг) и предварительный рендеринг (также называемый офлайн-рендерингом). Рендеринг в реальном времени используется для интерактивного рендеринга сцены, как в 3D-компьютерных играх , и, как правило, каждый кадр должен быть отрисован за несколько миллисекунд. Офлайн-рендеринг используется для создания реалистичных изображений и фильмов, где каждый кадр может занять часы или дни, или для отладки сложного графического кода программистами.

Программный рендеринг в реальном времени

Для рендеринга в реальном времени основное внимание уделяется производительности. Самые ранние программные рендереры реального времени с текстурным отображением для ПК использовали множество трюков для создания иллюзии трехмерной геометрии ( настоящее 3D ограничивалось плоскими или затененными по Гуро полигонами, которые использовались в основном в авиасимуляторах ). Ultima Underworld , например, допускала ограниченную форму взгляда вверх и вниз, наклонные полы и комнаты над комнатами, но прибегала к спрайтам для всех детализированных объектов. Технология, используемая в этих играх, в настоящее время классифицируется как 2.5D .

Одной из первых игр, архитектурно схожих с современными 3D-играми, допускающими полный 6DoF , была Descent , в которой были представлены 3D-модели, полностью созданные из растровых текстурированных треугольных полигонов. Воксельная графика также приобрела популярность за быстрый и относительно подробный рендеринг ландшафта, как в Delta Force , но популярное аппаратное обеспечение с фиксированными функциями в конечном итоге сделало его использование невозможным. Quake имеет эффективный программный рендерер Майкла Абраша и Джона Кармака . Благодаря своей популярности Quake и другие полигональные 3D-игры того времени помогли продажам видеокарт , и все больше игр начали использовать аппаратные API, такие как DirectX и OpenGL . Хотя программный рендеринг перестал быть основной технологией рендеринга, во многих играх вплоть до 2000-х годов все еще использовался программный рендерер в качестве запасного варианта, например, Unreal и Unreal Tournament , в которых реализованы программные рендереры, способные обеспечивать приятное качество и производительность на процессорах того периода. Одной из последних игр класса AAA без аппаратного рендеринга была игра Outcast , в которой использовались передовая воксельная технология, а также фильтрация текстур и рельефное отображение , реализованные на графическом оборудовании.

На рынках игровых приставок и аркадных игр эволюция 3D была более резкой, поскольку они всегда в значительной степени полагались на одноцелевые чипсеты. 16-битные консоли получили картриджи RISC-ускорителей в таких играх, как StarFox и Virtua Racing , которые реализовали программный рендеринг с помощью специально разработанных наборов инструкций. Jaguar и 3DO были первыми консолями, поставлявшимися с 3D-аппаратурой, но только с выходом PlayStation такие функции стали использоваться в большинстве игр.

Игры для детей и казуальных геймеров (которые используют устаревшие системы или системы, в первую очередь предназначенные для офисных приложений) в конце 1990-х — начале 2000-х годов обычно использовали программный рендерер в качестве запасного варианта. Например, в Toy Story 2: Buzz Lightyear to the Rescue есть возможность выбора аппаратного или программного рендеринга перед запуском игры, в то время как другие, такие как Half-Life, по умолчанию используют программный режим и могут быть настроены на использование OpenGL или DirectX в меню «Параметры». Некоторое программное обеспечение для 3D-моделирования также имеет программные рендереры для визуализации. И, наконец, эмуляция и проверка оборудования также требуют программного рендерера. Примером последнего является референсный растеризатор Direct3D .

Но даже для высокопроизводительной графики «искусство» программного рендеринга не полностью исчезло. Хотя ранние графические карты были намного быстрее программных рендереров и изначально имели лучшее качество и больше функций, это ограничивало разработчика обработкой пикселей «фиксированной функцией». Быстро возникла необходимость в разнообразии внешнего вида игр. Программный рендеринг не имеет ограничений, поскольку выполняется произвольная программа. Поэтому графические карты вновь ввели эту программируемость, выполняя небольшие программы на вершину и на пиксель / фрагмент , также известные как шейдеры . Языки шейдеров, такие как High Level Shader Language (HLSL) для DirectX или OpenGL Shading Language (GLSL), являются языками программирования, подобными C , для шейдеров и начинают демонстрировать некоторое сходство с программным рендерингом (произвольной функцией).

С момента принятия графического оборудования в качестве основного средства для рендеринга в реальном времени производительность ЦП неуклонно росла, как никогда. Это позволило появиться новым технологиям программного рендеринга. Несмотря на то, что производительность аппаратного рендеринга в значительной степени затмевается производительностью аппаратного рендеринга, некоторые современные программные рендеры в реальном времени умудряются сочетать широкий набор функций и разумную производительность (для программного рендеринга), используя специализированную динамическую компиляцию и расширенные расширения набора инструкций, такие как SSE . Хотя в настоящее время доминирование аппаратного рендеринга над программным рендерингом неоспоримо из-за непревзойденной производительности, функций и постоянных инноваций, некоторые полагают, что ЦП и ГП так или иначе сойдутся, и грань между программным и аппаратным рендерингом сотрется. [2]

Программное обеспечение резервного копирования

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

В результате появился ряд пакетов программного обеспечения общего назначения, способных заменить или дополнить существующий аппаратный графический ускоритель, в том числе:

Предварительный рендеринг

В отличие от рендеринга в реальном времени, производительность имеет лишь второстепенное значение при предварительном рендеринге. Он используется в основном в киноиндустрии для создания высококачественных рендеров реалистичных сцен. Многие спецэффекты в современных фильмах полностью или частично созданы с помощью компьютерной графики. Например, персонаж Голлума в фильмах Питера Джексона «Властелин колец» — это полностью компьютерная графика (CGI). Также для анимационных фильмов CGI набирает популярность. В частности, Pixar выпустила серию фильмов, таких как «История игрушек» и «В поисках Немо» , а Blender Foundation — первый в мире открытый фильм «Сон слонов» .

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

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

Ссылки

  1. ^ "LIVE Design - Interactive Visualizations | Autodesk". Архивировано из оригинала 21 февраля 2014 г. Получено 2016-08-20 .
  2. ^ Valich, Theo (2012-12-13). "Тим Суини, часть 2: "DirectX 10 — последний релевантный графический API" | TG Daily". TG Daily . Архивировано из оригинала 4 марта 2016 года . Получено 2016-11-07 .