Плиточный рендеринг - Tiled rendering
Эта статья требует внимания эксперта в области вычислений или рендеринга в реальном времени.Август 2009 г.) ( |
Плиточный рендеринг это процесс разделения компьютерная графика изображение от обычного сетка в оптическое пространство и рендеринг каждого раздела сетки, или плитка, раздельно. Преимущество этой конструкции состоит в том, что объем памяти и пропускная способность уменьшены по сравнению с немедленный режим системы рендеринга, которые рисуют сразу весь кадр. Это сделало системы рендеринга плитки особенно распространенными для маломощных карманное устройство использовать. Тайловый рендеринг иногда называют архитектурой «сортировки по центру», потому что он выполняет сортировку геометрии в середине графический конвейер а не ближе к концу.[1]
Основная концепция
Создание трехмерного изображения для отображения состоит из серии шагов. Сначала отображаемые объекты загружаются в память из отдельных модели. Затем система применяет математические функции для преобразования моделей в общую систему координат, мировоззрение. С этой точки зрения создается серия многоугольников (обычно треугольников), которые приблизительно соответствуют исходным моделям с определенной точки зрения. камера. Затем система композитинга создает изображение путем рендеринга треугольников и применения текстуры наружу. Текстуры - это небольшие изображения, которые наносятся на треугольники для придания реализма. Полученное изображение затем комбинируется с различными спецэффектами и перемещается в кадровый буфер, которое затем сканирует видеооборудование для получения отображаемого изображения. Этот базовый концептуальный макет известен как конвейер отображения.
Каждый из этих шагов увеличивает объем памяти, необходимый для хранения результирующего изображения. К тому времени, когда он достигает конца конвейера, изображения становятся настолько большими, что обычно видеокарта конструкции часто используют специализированную высокоскоростную память и очень быструю компьютерный автобус чтобы обеспечить необходимую полосу пропускания для перемещения изображения в различные субкомпоненты конвейера и из них. Такая поддержка возможна на выделенных видеокартах, но по мере того, как бюджеты на мощность и размер становятся более ограниченными, обеспечение достаточной пропускной способности становится дорогостоящим с точки зрения дизайна.
Модульные рендеры решают эту проблему, разбивая изображение на разделы, известные как тайлы, и визуализируя каждый отдельно. Это уменьшает объем памяти, необходимый на промежуточных этапах, и объем данных, перемещаемых в любой момент времени. Для этого система сортирует треугольники, составляющие геометрию, по местоположению, что позволяет быстро найти, какие треугольники перекрывают границы плитки. Затем он загружает только эти треугольники в конвейер рендеринга, выполняет различные операции рендеринга в GPU, и отправляет результат в кадровый буфер. Могут использоваться очень маленькие плитки, 16 × 16 и 32 × 32 пикселя являются популярными размерами плиток, что также снижает объем памяти и пропускную способность, необходимые на внутренних этапах. А поскольку каждая плитка независима, она, естественно, поддается простому распараллеливанию.
В типичном модуле рендеринга мозаичного изображения сначала необходимо преобразовать геометрию в пространство экрана и присвоить тайлам пространства экрана. Это требует некоторого хранилища для списков геометрии для каждой плитки. В ранних плиточных системах это выполнялось ЦПУ, но все современное оборудование содержит оборудование для ускорения этого шага. Список геометрии также можно отсортировать спереди назад, что позволяет графическому процессору использовать удаление скрытой поверхности чтобы избежать обработки пикселей, которые скрыты за другими, экономя пропускную способность памяти для ненужного поиска текстур.[2]
У плиточного подхода есть два основных недостатка. Во-первых, некоторые треугольники можно нарисовать несколько раз, если они перекрывают несколько плиток. Это означает, что общее время рендеринга будет больше, чем в системе рендеринга в немедленном режиме. Также возможны проблемы, когда плитки нужно сшить вместе, чтобы получилось законченное изображение, но эта проблема давно решена.[нужна цитата ]. Сложнее решить то, что некоторые методы изображения применяются к кадру в целом, и их сложно реализовать в мозаичной визуализации, где идея состоит в том, чтобы не работать со всем кадром. Эти компромиссы хорошо известны и имеют незначительные последствия для систем, в которых преимущества полезны; Системы плиточного рендеринга широко используются в портативных вычислительных устройствах.
Не следует путать плиточный рендеринг с плиточным / нелинейным кадровый буфер схемы адресации, которые делают соседние пиксели смежными в памяти.[3] Эти схемы адресации используются множеством архитектур, а не только мозаичными модулями визуализации.
Ранняя работа
Большая часть ранних работ по мозаичному рендерингу была сделана в рамках архитектуры Pixel Planes 5 (1989).[4][5]
Проект Pixel Planes 5 подтвердил плиточный подход и изобрел множество техник, которые теперь считаются стандартными для плиточных рендереров. Эта работа наиболее часто цитируется в других публикациях в данной области.
Тайловый подход также был известен в начале истории программного рендеринга. Реализации Рендеринг Рейеса часто делят изображение на «кафельные ведра».
Коммерческие продукты - настольные и консольные
На раннем этапе разработки графических процессоров для настольных ПК несколько компаний разработали мозаичные архитектуры. Со временем они были в значительной степени вытеснены графическими процессорами немедленного режима с быстрыми пользовательскими системами внешней памяти.
Основные примеры этого:
- PowerVR архитектура визуализации (1996): растеризатор состоит из плитки 32 × 32, в которую полигоны мы растеризованный через изображение через несколько пиксели в параллели. Рано ПК версиях тайлинг выполнялся в драйвер дисплея работает на ЦПУ. В приложении Dreamcast консоль, тайлинг выполнялся аппаратно. Это облегчило отложенный рендеринг - были только видимые пиксели наложенный на текстуру, экономия затенение расчеты и текстуры-пропускная способность.
- Microsoft Talisman (1996)
- Dreamcast (на базе чипсета PowerVR) (1998)
- Гигапиксельный GP-1 (1999)[6]
- Графический процессор Intel Larrabee (2009) (отменено)
- PS Vita (на базе чипсета PowerVR) (2011 г.)[7]
- Nvidia GPU на базе Архитектура Максвелла и более поздние архитектуры (2014 г.)[8]
- AMD GPU на базе Архитектура Vega (GCN5) и более поздние архитектуры (2017)[9][10]
- Intel Gen11 GPU и более поздние архитектуры (2019)[11][12][13]
Примеры не мозаичных архитектур, в которых используются большие буферы на кристалле:
- Xbox 360 (2005): GPU содержит встроенные 10МиБ eDRAM; этого недостаточно, чтобы удерживать растр для всего изображения 1280 × 720 с 4 × мультисэмпловое сглаживание, поэтому мозаичное решение накладывается при работе в разрешении HD и включен 4 × MSAA.[14]
- Xbox One (2013): GPU содержит 32 встроенныхМиБ eSRAM, который может использоваться для хранения всего или части изображения. Это не мозаичная архитектура, но она достаточно гибкая, чтобы разработчики программного обеспечения могли имитировать мозаичный рендеринг.[15][неудачная проверка ]
Коммерческие продукты - Встроенные
Из-за относительно низкой пропускной способности внешней памяти и небольшого объема требуемой встроенной памяти мозаичный рендеринг является популярной технологией для встроенных графических процессоров. Текущие примеры включают:
Рендеринг в немедленном режиме на основе плиток (TBIM):
- РУКА Мали[который? ] серии.[16]
- Qualcomm Адрено (серия 300 и новее также может динамически переключаться в режим немедленного / прямого рендеринга через FlexRender).[17][18][19]
Отложенный рендеринг на основе плиток (TBDR):
- Рука Мали[который? ] серии.[20]
- Воображение Технологии PowerVR 5/6/7 серии.[21]
- Broadcom VideoCore IV серии.[22]
- Apple Кремний GPU.[23]
Виванте производит мобильные графические процессоры с плотно связанной памятью с буфером кадров (аналогично описанному выше графическому процессору Xbox 360). Хотя это можно использовать для визуализации частей экрана, большой размер визуализируемых областей означает, что они обычно не описываются как использующие архитектуру на основе плиток.
Смотрите также
- Тесселяция (компьютерная графика)
- Атлас текстур
- Рендеринг строки сканирования
- Видеоигра на основе плитки
Рекомендации
- ^ Мольнар, Стивен (1994-04-01). «Сортировочная классификация параллельной визуализации» (PDF). IEEE. В архиве (PDF) из оригинала от 12.09.2014. Получено 2012-08-24.
- ^ «PowerVR: мастер-класс по графическим технологиям и оптимизации» (PDF). Воображение Технологии. 2012-01-14. В архиве (PDF) из оригинала от 03.10.2013. Получено 2014-01-11.
- ^ Дюшер, Алекс (16.05.2008). «Как работают видеокарты». Фонд X.Org. В архиве из оригинала 21.05.2010. Получено 2010-05-27.
- ^ Махани, Джим (1998-06-22). "История". Пиксель-плоскости. Университет Северной Каролины в Чапел-Хилл. В архиве из оригинала от 29.09.2008. Получено 2008-08-04.
- ^ Фукс, Генри (1989-07-01). «Пиксельные плоскости 5: неоднородная многопроцессорная графическая система, использующая память с улучшенным процессором». Пиксель-плоскости. ACM. Получено 2012-08-24.
- ^ Смит, Тони (1999-10-06). «GigaPixel берет на себя 3dfx, S3, Nvidia с ... плитками». Гигапиксель. Реестр. В архиве с оригинала от 03.10.2012. Получено 2012-08-24.
- ^ местур, местур (21.07.2011). «Develop 2011: PS Vita - самое удобное для разработчиков оборудование, которое когда-либо производила Sony». PS Vita. 3dsforums. Получено 2011-07-21.[постоянная мертвая ссылка ]
- ^ Кантер, Дэвид (1 августа 2016 г.). «Растеризация на основе плитки в графических процессорах Nvidia». Технологии реального мира. В архиве из оригинала на 2016-08-04. Получено 1 апреля, 2016.
- ^ «Предварительный просмотр архитектуры графического процессора AMD Vega: переработанная архитектура памяти». Перспектива ПК. Получено 2020-01-04.
- ^ Смит, Райан. «Тизер архитектуры графического процессора AMD Vega: более высокий IPC, тайлинг и многое другое, появится в первом полугодии 2017 года». www.anandtech.com. Получено 2020-01-04.
- ^ https://software.intel.com/sites/default/files/managed/db/88/The-Architecture-of-Intel-Processor-Graphics-Gen11_R1new.pdf
- ^ https://twitter.com/intelnews/status/1126251762657124358
- ^ https://newsroom.intel.com/wp-content/uploads/sites/11/2019/05/10th-Gen-Intel-Core-Product-Brief.pdf
- ^ LLC), Тара Мейер (Aquent. «Обновить XNA Game Studio 4.0». msdn.microsoft.com. В архиве из оригинала 07.01.2015. Получено 2014-05-15.
- ^ «Разработчик Xbox One: предстоящие улучшения SDK позволят создать больше игр с разрешением 1080p».
- ^ «Стратегия рендеринга Мали». РУКА. В архиве из оригинала от 04.03.2016. Получено 2018-10-27.
- ^ "Обновление графического драйвера freedreno". lwn.net. В архиве из оригинала от 05.09.2015. Получено 2015-09-15.
- ^ «Рост мобильных игр на android» (PDF). Qualcomm. п. 5. В архиве (PDF) из оригинала от 09.11.2014. Получено 17 сентября 2015.
- ^ Симонд, Брайан Клуг, Ананд Лал Шимпи, Франсуа (11 сентября 2011 г.). «Обзор Samsung Galaxy S 2 (международный) - лучшее, новое определение». www.anandtech.com. Получено 2020-01-04.
- ^ «Рендеринг на основе плитки». Рука. Получено 2020-07-13.
- ^ «Взгляд на графическую архитектуру PowerVR: рендеринг на основе тайлов». Воображаемые технологии. В архиве из оригинала на 2015-04-05. Получено 2015-09-15.
- ^ «ВидеоКореIV-AG100» (PDF). Broadcom. 2013-09-18. В архиве (PDF) из оригинала на 2015-03-01. Получено 2015-01-10.
- ^ «Перенесите свое приложение Metal на компьютеры Apple Silicon Mac». developer.apple.com. Получено 2020-07-13.