stringtranslate.com

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

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

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

Рендеринг используется в архитектуре, симуляторах, видеоиграх, визуальных эффектах фильмов и телевидения, а также в визуализации дизайна. Рендеринг — это последний этап процесса анимации, который придает окончательный вид моделям и анимации с помощью визуальных эффектов, таких как затенение, наложение текстур, тени, отражения и размытие изображения. [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-х годов в качестве запасного варианта обычно использовался программный рендерер. Например, в «Истории игрушек 2: Базз Лайтер спешит на помощь» перед игрой можно выбрать аппаратный или программный рендеринг, в то время как в других играх, таких как Half-Life, по умолчанию используется программный режим, и их можно настроить на использование OpenGL или DirectX в меню «Параметры». . Некоторые программы для 3D-моделирования также оснащены программными средствами визуализации для визуализации. И, наконец, для эмуляции и проверки оборудования также требуется программный рендерер. Примером последнего является эталонный растеризатор Direct3D .

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

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

Резервное программное обеспечение

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

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

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

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

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

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

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

  1. ^ «LIVE Design — Интерактивные визуализации | Autodesk» . Архивировано из оригинала 21 февраля 2014 года . Проверено 20 августа 2016 г.
  2. ^ Валич, Тео (13 декабря 2012 г.). «Тим Суини, Часть 2: «DirectX 10 — последний актуальный графический API» | TG Daily». ТГ Дейли . Архивировано из оригинала 4 марта 2016 года . Проверено 7 ноября 2016 г.