Caustic Graphics

Caustic Graphics — американская компания в области компьютерной графики и безфабричного производства полупроводников, разрабатывавшая технологии для вывода трассированной в реальном времени графики на массовый рынок.[1][2][3]

Название компании происходит от оптического эффекта — каустики, возникающего при концентрации света на поверхности в результате фокусировки через отражение или преломление.

Caustic Graphics была основана на предпосылке, что создание реалистичной 3D-графики станет проще, если аппаратное обеспечение графического процессора (GPU) будет столь же эффективно обрабатывать лучи, как и вершины или фрагменты при использовании существующих методов растризации[2].

Общие сведения
Caustic Graphics
Тип Частная компания
Основание 1 января 2007
Причина упразднения Приобретена компанией Imagination Technologies в 2010 году
Расположение
Продукция
  • Аппаратное обеспечение для трассировки лучей
  • Графические API
  • Программное обеспечение для рендеринга
Сайт caustic.com

История

Caustic Graphics была основана в 2006 году тремя бывшими инженерами Apple, один из которых разрабатывал графические технологии для iPod пятого поколения и iPhone первого поколения. Первоначальный бизнес-план предполагал создание полноценной системы трассировки лучей в реальном времени для ускорения профессиональной 3D-визуализации, а впоследствии — для развлекательных приложений на ПК и игровых консолях[1].

В 2008 году Caustic Graphics приобрела компанию Splutterfish, разработчика и поставщика программного обеспечения для производственного рендеринга Brazil R/S[4].

Позднее Caustic выпустила серию коммерческих программных продуктов под названием Visualiser Plugins, использующих технологию рендеринга Brazil R/S и аппаратное обеспечение Caustic для интерактивного и офлайн-рендеринга с трассировкой лучей в Autodesk 3DSMax[5], Autodesk Maya[6], McNeel Rhino[7] и позднее SketchUp[8].

В 2010 году Caustic Graphics была приобретена компанией Imagination Technologies.[9][10][11]

Технологии

Аппаратное обеспечение

Аппаратное обеспечение для трассировки лучей Caustic не заменяло существующие GPU для растризации, а добавляло ряд новых аппаратных функций для повышения эффективности трассировки лучей[12]:

  1. Сбор когерентности: Возможность для GPU генерировать задачи для себя и группировать их в когерентные группы, запрашивающие общий ресурс, например, адрес данных или программы шейдера в памяти.
  2. Блочные устройства пересечения треугольников: Разработан блок, способный пересекать луч с парой треугольников с общей гранью и возвращать барицентрические координаты и другую информацию о пересечении.
  3. Блочные устройства пересечения ограничивающих объёмов: Разработан блок, способный пересекать луч с ограничивающим параллелепипедом (AABB) и возвращать информацию о пересечении.
  4. Аккумулятор кадрового буфера: Этот блок получает команды от АЛУ для добавления цвета к определённому пикселю в кадровом буфере.
  5. Генератор иерархии сцены: Этот блок читает списки треугольников (или других представлений геометрии сцены) и формирует в памяти ориентированный ациклический граф 3D-объёмов, окружающих геометрию, известный как иерархия ограничивающих объёмов.

Сбор когерентности

Архитектура Caustic параллелила выполнение не по пикселям, а по отдельным лучам. Это позволяло аппаратуре собирать лучи в когерентные группы для выполнения общей операции, например, доступа к адресу памяти внутри структуры ускорения сцены или выполнения общего шейдерного материала[13][14][15].

Генератор иерархии ограничивающих объёмов

Caustic разработала аппаратный конвейер, способный строить иерархию ограничивающих объёмов (BVH) снизу вверх, напрямую потребляя собранные примитивы после вершинного шейдинга и постепенно формируя граф узлов AABB в DRAM за один проход. Это реализовано с помощью консервативного треугольного вокселизатора, который создаёт пространственные адреса для группировки треугольников и AABB в общих частях 3D-пространства. Для эффективной работы требуется, чтобы приложение подавало треугольники в пространственно когерентном порядке; иначе возникают преждевременные вытеснения из кэша и увеличивается накладная на трассировку лучей. Для длинных и узких треугольников реализована функция ускорения вокселизации, что повышает производительность при рендеринге внеосевой геометрии[15][16].

Этот аппаратный блок, известный как SHG, был реализован в PowerVR 6XT GR6500 от Imagination. В демонстрации компания заявила, что на тестовом кристалле с частотой 600 МГц SHG обеспечивал пропускную способность 100 миллионов динамических треугольников в секунду[12].

CausticGL/OpenRL API

API OpenRL (ранее назывался CausticGL) был основан на OpenGL ES 2.0 и дополнялся рядом функций для поддержки трассировки лучей как в хост-API, так и в GLSL. Caustic поставляла высокопроизводительные реализации API для процессоров Intel с поддержкой SSE и AVX, GPU с поддержкой OpenCL и CUDA для NVIDIA.

OpenRL SDK

API OpenRL распространялся в бесплатном SDK с реализациями для процессоров Intel, GPU с поддержкой OpenCL и CUDA, а также аппаратного обеспечения Caustic. Приложения, построенные на OpenRL SDK, автоматически определяли поддерживаемое оборудование и использовали наиболее производительный вариант[17].

SDK включал примеры программ, «Profiler» для отладки приложений с возможностью полного анализа дерева трассировки лучей в пикселе[18] и инструмент «StatsPlotter» для анализа внутренних счётчиков производительности.

PowerVR Brazil SDK

PowerVR Brazil SDK (также известный как Resin) — программный слой, использующий API OpenRL, который позволял реализовывать физически корректный рендеринг, программируемые материалы, динамическую геометрию и независимость от аппаратной платформы. Технология Resin выросла из опыта команды Brazil R/S, приобретённой Caustic Graphics[19].

Продукты

PowerVR Wizard / PLATO

После приобретения компанией Imagination Technologies началась интеграция технологий Caustic по сбору когерентности лучей, блочных тестеров геометрии и нового потокового генератора BVH в архитектуру GPU PowerVR серии 6. Это позволило выполнять GLSL-шейдеры, которые ранее работали только на CPU, непосредственно на кластерах PowerVR, сохраняя преимущества переупорядочивания лучей, реализуемого блоком обхода Caustic[12].

Кроме того, GPU оставался тайловым отложенным растризатором (TBDR) и мог выполнять гибридную растризацию и трассировку лучей, позволяя фрагментным шейдерам треугольников генерировать лучи прямо в конвейер трассировки.

Imagination Technologies изготовила тестовый кристалл PowerVR 6XT GR6500 с трассировкой лучей на плате PCI Express под названием PLATO, который был публично продемонстрирован на различных мероприятиях. Компания заявляла, что по пропускной способности памяти и энергопотреблению этот GPU сопоставим с типичным смартфоном среднего класса 2016 года.

PCIe-карты

Были выпущены две PCIe-карты с ASIC Caustic RT2, реализующими RTU. RT2 — это специализированная микросхема, изготовленная по 90-нм техпроцессу TSMC. Карта R2100 содержала один чип RT2 и 4 ГБ DDR2-памяти, заявленное энергопотребление — 40 Вт. R2500 имела два чипа RT2 и 16 ГБ памяти, энергопотребление — 60 Вт. Карты поступили в продажу в 2013 году[20].

PCIe-карта CausticOne имела две FPGA-реализации RTU, работавшие на частоте 100 МГц каждая, с одноканальной DDR2-памятью для хранения сцены и подключением к хосту через 4 линии PCI Express 1.0. Она была продемонстрирована в 2009 году и продавалась ограниченным тиражом в том же году.

Примечания

  1. 1 2 Clark, Don. Start-Up Promises More Game Realism (англ.), Wall Street Journal (9 марта 2009). Дата обращения: 12 ноября 2017.
  2. 1 2 Stokes, Jon. Caustic Graphics launches real-time ray tracing platform (англ.), Ars Technica (21 апреля 2009). Дата обращения: 12 ноября 2017.
  3. Skillings, Jon. Start-up Caustic targets ray tracing for graphics (англ.), CNET (9 марта 2009). Дата обращения: 12 ноября 2017.
  4. Maher, Kathleen (август 2009). “The Rendering Race”. Computer Graphics World [англ.]. 32 (8). Дата обращения 2022-03-12. Проверьте дату в |date= (справка на английском)
  5. Caustic Visualizer for 3DS Max open beta (англ.). CGPress (6 мая 2013). Дата обращения: 12 марта 2022.
  6. Caustic Visualizer For Maya (англ.). IAMAG Inspiration (7 мая 2013). Дата обращения: 12 марта 2022.
  7. Newton, Randall Rhino plug-in gives access to Caustic Visualizer ray tracing (англ.). GraphicSpeak (11 апреля 2013). Дата обращения: 12 марта 2022.
  8. Visualizer for SketchUp • sketchUcation • 1 (англ.). sketchucation.com. Дата обращения: 12 марта 2022.
  9. Apple partner Imagination acquires 'cinema quality' graphics chipmaker (англ.). Apple Insider (14 декабря 2010). Дата обращения: 12 ноября 2017.
  10. Alternative Hardware Architectures (англ.). pbr-book.org. Дата обращения: 12 марта 2022.
  11. Keller, Alexander. Ray tracing is the future and ever will be // ACM SIGGRAPH 2013 Courses : [англ.] / Alexander Keller, Tero Karras, Ingo Wald … [et al.]. — New York, NY, USA : Association for Computing Machinery, 21 июля 2013. — P. 1–7. — ISBN 978-1-4503-2339-0. — doi:10.1145/2504435.2504444.
  12. 1 2 3 Smith, Ryan Imagination Announces PowerVR Wizard GPU Family: Rogue Learns Ray Tracing (англ.). AnandTech (18 марта 2014). Дата обращения: 12 марта 2022. Архивировано 19 марта 2014 года.
  13. Peterson, Luke Tilman; James Alexander McCombe & Ryan R. Salsbury et al., "Architectures for concurrent graphics processing operations", US 8502820B2, issued 2013-08-06
  14. Peterson, Luke Tilman; James Alexander McCombe & Ryan R. Salsbury et al., "Ray tracing system architectures and methods", US 8018457B2, published 2011-09-13, issued 2011-09-13
  15. 1 2 New Techniques Made Possible by PowerVR Ray Tracing Hardware (Presented by Imagination Technologies) (англ.). www.gdcvault.com. Дата обращения: 14 марта 2022.
  16. Mccombe, James A.; Aaron Dwyer & Luke T. Peterson et al., "Systems and methods for 3-D scene acceleration structure creation and updating", US 10930052B2, published 2021-02-23, issued 2021-02-23
  17. OpenRL: Heterogeneous Computing Example (англ.). Geeks 3D (28 мая 2010). Дата обращения: 13 марта 2022.
  18. Monson, Nur; James Alexander McCombe & Sean Matthew Gies, "Profiling ray tracing renderers", US 9881411B2, published 2018-01-30, issued 2018-01-30
  19. Thacker, Jim Imagination Technologies ships PowerVR Brazil SDK | CG Channel (англ.). CGchannel.com (20 апреля 2012). Дата обращения: 13 марта 2022.
  20. Ward, Antony Hardware review: Caustic Series2 R2500 ray-tracing accelerator card | 3D World (англ.). 3D World Mag (25 июля 2013). Дата обращения: 12 марта 2022. Архивировано 25 июля 2013 года.