stringtranslate.com

Плиточный рендеринг

Плиточный рендеринг — это процесс разделения компьютерного графического изображения регулярной сеткой в ​​оптическом пространстве и рендеринга каждой секции сетки, или тайла , отдельно. Преимущество этой конструкции в том, что объем памяти и пропускная способность уменьшаются по сравнению с системами рендеринга в режиме немедленного режима , которые рисуют весь кадр сразу. Это сделало системы рендеринга тайла особенно распространенными для использования на маломощных портативных устройствах . Плиточный рендеринг иногда называют архитектурой «сортировки середины», потому что он выполняет сортировку геометрии в середине графического конвейера, а не ближе к концу. [1]

Основная концепция

Создание 3D-изображения для отображения состоит из ряда шагов. Сначала объекты, которые должны быть отображены, загружаются в память из отдельных моделей . Затем система применяет математические функции для преобразования моделей в общую систему координат, вид мира . Из этого вида мира создается ряд полигонов (обычно треугольников), которые аппроксимируют исходные модели, видимые с определенной точки зрения, камеры . Затем система композитинга создает изображение, визуализируя треугольники и применяя текстуры к внешней стороне. Текстуры — это небольшие изображения, которые рисуются на треугольниках для создания реализма. Затем полученное изображение объединяется с различными спецэффектами и перемещается в буфер кадров , который затем сканируется видеооборудованием для создания отображаемого изображения. Эта базовая концептуальная схема известна как конвейер отображения .

Каждый из этих шагов увеличивает объем памяти, необходимый для хранения полученного изображения. К тому времени, как оно достигает конца конвейера, изображения становятся настолько большими, что типичные конструкции видеокарт часто используют специализированную высокоскоростную память и очень быструю компьютерную шину для обеспечения требуемой пропускной способности для перемещения изображения в различные подкомпоненты конвейера и из них. Такая поддержка возможна на выделенных видеокартах, но по мере того, как бюджеты мощности и размера становятся более ограниченными, обеспечение достаточной пропускной способности становится дорогим с точки зрения проектирования.

Плиточные рендереры решают эту проблему, разбивая изображение на разделы, известные как плитки, и визуализируя каждую из них отдельно. Это уменьшает объем памяти, необходимый на промежуточных этапах, и объем данных, перемещаемых в любой момент времени. Для этого система сортирует треугольники, составляющие геометрию, по местоположению, что позволяет быстро находить треугольники, перекрывающие границы плиток. Затем она загружает только эти треугольники в конвейер рендеринга, выполняет различные операции рендеринга в графическом процессоре и отправляет результат в буфер кадра . Можно использовать очень маленькие плитки, 16×16 и 32×32 пикселя являются популярными размерами плиток, что также делает объем памяти и пропускной способности, требуемый на внутренних этапах, небольшим. И поскольку каждая плитка независима, она естественным образом поддается простой распараллеливанию.

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

Существует два основных недостатка подхода с использованием плиток. Один из них заключается в том, что некоторые треугольники могут быть нарисованы несколько раз, если они перекрывают несколько плиток. Это означает, что общее время рендеринга будет выше, чем у системы рендеринга в режиме немедленного отображения. Также возможны проблемы, когда плитки должны быть сшиты вместе, чтобы создать полное изображение, но эта проблема была решена давно [ требуется ссылка ] . Более сложным для решения является то, что некоторые методы изображения применяются к кадру в целом, и их трудно реализовать в рендеринге с использованием плиток, где идея состоит в том, чтобы не работать со всем кадром. Эти компромиссы хорошо известны и не имеют значительных последствий для систем, где преимущества полезны; системы рендеринга с использованием плиток широко используются в карманных вычислительных устройствах.

Плиточный рендеринг не следует путать с мозаичными/нелинейными схемами адресации буфера кадра , которые делают смежные пиксели также смежными в памяти. [3] Эти схемы адресации используются широким спектром архитектур, а не только мозаичными рендерерами.

Ранние работы

Большая часть ранних работ по мозаичному рендерингу была выполнена в рамках архитектуры Pixel Planes 5 (1989). [4] [5]

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

Плиточный подход также был известен в начале истории программного рендеринга. Реализации рендеринга Рейеса часто делят изображение на «плиточные сегменты».

Коммерческие продукты – Настольные и консольные

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

Вот основные примеры:

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

Коммерческие продукты – Встроенные

Из-за относительно низкой пропускной способности внешней памяти и скромного объема требуемой памяти на чипе, тайловый рендеринг является популярной технологией для встроенных графических процессоров. Текущие примеры включают:

Немедленный рендеринг на основе плиток (TBIM):

Отложенный рендеринг на основе плиток (TBDR):

Vivante производит мобильные графические процессоры, которые имеют тесно связанную память буфера кадров (аналогично описанному выше графическому процессору Xbox 360). Хотя это может использоваться для рендеринга частей экрана, большой размер рендерируемых областей означает, что они обычно не описываются как использующие архитектуру на основе плиток.

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

Ссылки

  1. ^ Молнар, Стивен (1994-04-01). "Сортировочная классификация параллельного рендеринга" (PDF) . IEEE . Архивировано (PDF) из оригинала 2014-09-12 . Получено 2012-08-24 .
  2. ^ "PowerVR: Мастер-класс по графическим технологиям и оптимизации" (PDF) . Imagination Technologies . 2012-01-14. Архивировано (PDF) из оригинала 2013-10-03 . Получено 2014-01-11 .
  3. ^ Дойчер, Алекс (2008-05-16). "Как работают видеокарты". X.Org Foundation . Архивировано из оригинала 2010-05-21 . Получено 2010-05-27 .
  4. ^ Махани, Джим (1998-06-22). "История". Pixel-Planes . Университет Северной Каролины в Чапел-Хилл . Архивировано из оригинала 29-09-2008 . Получено 04-08-2008 .
  5. ^ Фукс, Генри (1989-07-01). "Pixel-planes 5: гетерогенная многопроцессорная графическая система, использующая память с улучшенными процессорными возможностями". Труды 16-й ежегодной конференции по компьютерной графике и интерактивным технологиям - SIGGRAPH '89 . ACM . С. 79–88. doi :10.1145/74333.74341. ISBN 0201504340. S2CID  1778124 . Получено 24.08.2012 .
  6. ^ Maclellan, Andrew (23 июня 1997 г.). "Oak представляет 3-D чип Warp 5 accelerator использует схему рендеринга, подобную Talisman". № 1063. Electronic Buyers News.
  7. ^ Смит, Тони (1999-10-06). "GigaPixel бросает вызов 3dfx, S3, Nvidia с помощью... плиток". Gigapixel . The Register . Архивировано из оригинала 2012-10-03 . Получено 2012-08-24 .
  8. ^ "Develop 2011: PS Vita — самое удобное для разработчиков устройство, которое когда-либо производила Sony". PS Vita . 3dsforums. 2011-07-21 . Получено 2011-07-21 .[ постоянная мертвая ссылка ]
  9. ^ Кантер, Дэвид (1 августа 2016 г.). "Растеризация на основе тайлов в графических процессорах Nvidia". Real World Technologies . Архивировано из оригинала 2016-08-04 . Получено 1 апреля 2016 г.
  10. ^ "AMD Vega GPU Architecture Preview: Redesigned Memory Architecture". PC Perspective . 5 января 2017 г. Получено 2020-01-04 .
  11. ^ Смит, Райан. «Архитектура графического процессора AMD Vega: более высокий IPC, тайлинг и многое другое в первом полугодии 2017 года». www.anandtech.com . Получено 04.01.2020 .
  12. ^ "Архитектура графических процессоров Intel Gen11" (PDF) . software.intel.com . Получено 2024-08-13 .
  13. ^ @intelnews (8 мая 2019 г.). «@gregorymbryant из Intel сегодня...» ( твит ) – через Twitter .
  14. ^ "Большое развлечение в удивительно тонком и легком дизайне" (PDF) . Архивировано из оригинала (PDF) 2019-05-28.
  15. ^ Мейер, Тара (29 сентября 2011 г.). "XNA Game Studio 4.0 Refresh". msdn.microsoft.com . Архивировано из оригинала 2015-01-07 . Получено 2014-05-15 .
  16. ^ «Разработчик Xbox One: грядущие улучшения SDK позволят выпускать больше игр в разрешении 1080p». 29 июля 2023 г.
  17. ^ "Mali rendering strategy". ARM. Архивировано из оригинала 2016-03-04 . Получено 2018-10-27 .
  18. ^ "Обновление графического драйвера freedreno". lwn.net. Архивировано из оригинала 2015-09-05 . Получено 2015-09-15 .
  19. ^ "Расцвет мобильных игр на Android" (PDF) . Qualcomm. стр. 5. Архивировано (PDF) из оригинала 2014-11-09 . Получено 17 сентября 2015 .
  20. ^ Клуг, Брайан; Лал Шимпи, Ананд (11 сентября 2011 г.). «Обзор Samsung Galaxy S 2 (международный) — лучшее, переосмысленное». www.anandtech.com . Получено 04.01.2020 .
  21. ^ "Рендеринг на основе плитки". Arm . Получено 2020-07-13 .
  22. ^ "Взгляд на графическую архитектуру PowerVR: рендеринг на основе плиток". Imagination Technologies. Архивировано из оригинала 2015-04-05 . Получено 2015-09-15 .
  23. ^ "VideoCoreIV-AG100" (PDF) . Broadcom. 2013-09-18. Архивировано (PDF) из оригинала 2015-03-01 . Получено 2015-01-10 .
  24. ^ «Перенесите свое приложение Metal на компьютеры Apple Silicon Mac». developer.apple.com . Получено 13 июля 2020 г.