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


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

Рендеринг используется в архитектуре, симуляторах, видеоиграх, фильмах и телевидении, визуальных эффектах и ​​визуализации дизайна. Рендеринг — это последний шаг в процессе анимации, который придает окончательный вид моделям и анимации с визуальными эффектами, такими как затенение, наложение текстур, тени, отражения и размытие в движении. [1] Рендеринг можно разделить на две основные категории: рендеринг в реальном времени (онлайн-рендеринг) и предварительный рендеринг (офлайн-рендеринг). Рендеринг в реальном времени используется для интерактивного рендеринга сцены, как в компьютерных 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 такие функции стали использоваться в большинстве игр.


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