stringtranslate.com

Рендеринг (компьютерная графика)

Различные методы рендеринга, применяемые к одной 3D-сцене
Изображение создано с помощью POV-Ray 3.6

Рендеринг или синтез изображений — это процесс создания фотореалистичного или нефотореалистичного изображения из 2D- или 3D-модели с помощью компьютерной программы . [ требуется ссылка ] Полученное изображение называется рендерингом . Несколько моделей могут быть определены в файле сцены, содержащем объекты на строго определенном языке или структуре данных . Файл сцены содержит геометрию, точку обзора, текстуры , освещение и информацию о затенении , описывающую виртуальную сцену. Затем данные, содержащиеся в файле сцены, передаются в программу рендеринга для обработки и вывода в файл цифрового изображения или растрового графического изображения. Термин «рендеринг» аналогичен концепции впечатления художника от сцены. Термин «рендеринг» также используется для описания процесса расчета эффектов в программе видеоредактирования для получения конечного видеовывода.

Программное приложение или компонент , выполняющий рендеринг, называется движком рендеринга , [1] движком рендеринга , системой рендеринга , графическим движком или просто рендерером .

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

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

Хотя технические детали методов рендеринга различаются, общие проблемы, которые необходимо преодолеть при создании 2D-изображения на экране из 3D-представления, сохраненного в файле сцены, обрабатываются графическим конвейером в устройстве рендеринга, таком как графический процессор . Графический процессор — это специально созданное устройство, которое помогает центральному процессору выполнять сложные расчеты рендеринга. Если сцена должна выглядеть относительно реалистично и предсказуемо при виртуальном освещении, программное обеспечение для рендеринга должно решить уравнение рендеринга . Уравнение рендеринга не учитывает все явления освещения, а вместо этого действует как общая модель освещения для изображений, сгенерированных компьютером.

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

Функции

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

Входы

Прежде чем визуализировать 3D-сцену или 2D-изображение, их необходимо описать таким образом, чтобы программное обеспечение для визуализации могло их понять. Исторически входные данные для 2D- и 3D-рендеринга обычно представляли собой текстовые файлы , которые проще редактировать и понимать, чем двоичные файлы. Для 3D-графики текстовые форматы в значительной степени были вытеснены более эффективными двоичными форматами и API, которые позволяют интерактивным приложениям напрямую взаимодействовать с компонентом визуализации без создания файла на диске (хотя описание сцены обычно все еще создается в памяти перед визуализацией). [2] : 1.2, 3.2.6, 3.3.1, 3.3.7 

Традиционные алгоритмы рендеринга используют геометрические описания 3D-сцен или 2D-изображений. Приложения и алгоритмы, которые визуализируют данные , сканированные из реального мира, или научные симуляции , могут требовать различные типы входных данных.

Формат PostScript (который часто приписывают росту настольных издательских систем ) обеспечивает стандартизированный, совместимый способ описания 2D-графики и макета страницы . Формат масштабируемой векторной графики (SVG) также основан на тексте, а формат PDF использует язык PostScript внутри. Напротив, хотя многие форматы файлов 3D-графики были стандартизированы (включая текстовые форматы, такие как VRML и X3D ), различные приложения рендеринга обычно используют форматы, адаптированные к их потребностям, и это привело к распространению фирменных и открытых форматов, причем двоичные файлы стали более распространенными. [2] : 3.2.3, 3.2.5, 3.3.7  [3] : vii  [4] [5] : 16.5.2.  [6]

2D векторная графика

Описание векторного графического изображения может включать: [3] [4]

3D геометрия

Описание геометрической сцены может включать: [2] : Гл. 4-7, 8.7  [7]

Существует множество форматов файлов для хранения отдельных 3D-объектов или « моделей ». Их можно импортировать в большую сцену или загружать по запросу с помощью программного обеспечения для рендеринга или игр. Реалистичная сцена может потребовать сотни предметов, таких как предметы домашнего обихода, транспортные средства и деревья, и 3D-художники часто используют большие библиотеки моделей. В производстве игр эти модели (вместе с другими данными, такими как текстуры, аудиофайлы и анимация) называются « активами ». [6] [8] : Гл. 4 

Объемные данные

Научная и инженерная визуализация часто требует визуализации объемных данных, полученных с помощью 3D-сканирования или моделирования . Возможно, наиболее распространенным источником таких данных являются медицинские КТ и МРТ- сканы, которые необходимо визуализировать для диагностики. Объемные данные могут быть чрезвычайно большими и требуют специализированных форматов данных для их эффективного хранения, особенно если объем разрежен (с пустыми областями, не содержащими данных). [9] : 14.3.1  [10] [11]

Перед рендерингом наборы уровней для объемных данных могут быть извлечены и преобразованы в сетку треугольников, например, с помощью алгоритма марширующих кубов . Также были разработаны алгоритмы, которые работают напрямую с объемными данными, например, для рендеринга реалистичных изображений того, как свет рассеивается и поглощается облаками и дымом, и этот тип объемного рендеринга широко используется в визуальных эффектах для фильмов. При рендеринге объемных данных с низким разрешением без интерполяции могут быть видны отдельные кубы или « воксели », эффект, который иногда намеренно используется для игровой графики. [12] : 4.6  [9] : 13.10, Ch. 14, 16.1 

Фотограмметрия и сканирование

Фотографии объектов реального мира могут быть включены в визуализированную сцену, используя их в качестве текстур для 3D-объектов. Фотографии сцены также могут быть сшиты вместе для создания панорамных изображений или карт окружающей среды , которые позволяют визуализировать сцену очень эффективно, но только с одной точки зрения. Сканирование реальных объектов и сцен с использованием структурированного света или лидара создает облака точек , состоящие из координат миллионов отдельных точек в пространстве, иногда вместе с цветовой информацией. Эти облака точек могут быть либо визуализированы напрямую, либо преобразованы в сетки перед визуализацией. (Примечание: «облако точек» иногда также относится к минималистичному стилю визуализации, который может использоваться для любой 3D-геометрии, аналогично каркасной визуализации.) [9] : 13.3, 13.9  [2] : 1.3 

Нейронные аппроксимации и световые поля

Более поздний экспериментальный подход заключается в описании сцен с использованием полей сияния , которые определяют цвет, интенсивность и направление входящего света в каждой точке пространства. (Это концептуально похоже, но не идентично световому полю , записанному голограммой . ) Для любого полезного разрешения объем данных в поле сияния настолько велик, что его непрактично представлять непосредственно как объемные данные, и необходимо найти функцию аппроксимации . Нейронные сети обычно используются для генерации и оценки этих аппроксимаций, иногда с использованием видеокадров или коллекции фотографий сцены, сделанных под разными углами, в качестве « обучающих данных ». [13] [14]

Алгоритмы, связанные с нейронными сетями, недавно использовались для поиска приближений сцены в виде 3D-гауссианов . Полученное представление похоже на облако точек , за исключением того, что оно использует нечеткие, частично прозрачные пятна различных размеров и ориентаций вместо точек. Как и в случае с нейронными полями сияния , эти приближения часто генерируются из фотографий или видеокадров. [15]

Выходы

Результат рендеринга может быть немедленно отображен на экране (много раз в секунду в случае рендеринга в реальном времени, например, в играх) или сохранен в формате файла растровой графики , например JPEG или PNG . Высокопроизводительные приложения рендеринга обычно используют формат файла OpenEXR , который может представлять более тонкие градации цветов и освещение с высоким динамическим диапазоном , что позволяет впоследствии применять тональную компрессию или другие корректировки без потери качества. [16] [17] : Гл. 14, Ап. B 

Быстро отрендеренные анимации можно сохранять непосредственно в виде видеофайлов, но для высококачественного рендеринга отдельные кадры (которые могут быть отрендерены разными компьютерами в кластере или ферме рендеринга и на их рендеринг могут уйти часы или даже дни) выводятся в виде отдельных файлов и позже объединяются в видеоклип. [18] [8] : 1.5, 3.11, 8.11 

Выходные данные рендерера иногда включают в себя не только значения цвета RGB . Например, спектр может быть выбран с использованием нескольких длин волн света, или может быть включена дополнительная информация, такая как глубина (расстояние от камеры) или материал каждой точки изображения (эти данные могут использоваться во время композитинга или при создании текстурных карт для рендеринга в реальном времени, или использоваться для удаления шума из изображения с трассировкой пути). Может быть включена информация о прозрачности, что позволяет компоновать визуализированные объекты переднего плана с фотографиями или видео. Иногда также полезно сохранять вклады различных источников света или зеркального и рассеянного освещения в виде отдельных каналов, чтобы освещение можно было настроить после рендеринга. Формат OpenEXR позволяет хранить множество каналов данных в одном файле. [16] [17] : Ch. 14, Ap. B 

Техники

Выбор способа рендеринга 3D-сцены обычно подразумевает компромисс между скоростью, использованием памяти и реализмом (хотя реализм не всегда желателен).Алгоритмы, разработанные на протяжении многих лет, следуют свободной прогрессии, и более продвинутые методы становятся практичными по мере увеличения вычислительной мощности и объема памяти. Для одного конечного изображения можно использовать несколько методов.

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

2D векторная графика
Векторные дисплеи 1960-1970-х годов использовали отклонение электронного луча для рисования отрезков линий непосредственно на экране. В настоящее время векторная графика визуализируется с помощью алгоритмов растеризации , которые также поддерживают заполненные формы. В принципе, любой рендерер 2D-векторной графики может использоваться для визуализации 3D-объектов, сначала проецируя их на плоскость 2D-изображения. [20] : 93, 431, 505, 553 
3D растеризация
Адаптирует алгоритмы 2D-растеризации, чтобы их можно было использовать более эффективно для 3D-рендеринга, обрабатывая удаление скрытых поверхностей с помощью техник сканлайна или z-буфера . Различные реалистичные или стилизованные эффекты могут быть получены путем окрашивания пикселей, покрытых объектами, разными способами. Поверхности обычно делятся на сетки треугольников перед растеризацией. Растеризация обычно является синонимом рендеринга «порядка объектов» (как описано выше). [20] : 560-561, 575-590  [2] : 8.5  [19] : Гл. 9 
Лучевое литье
Использует геометрические формулы для вычисления первого объекта, который пересекает луч . [21] : 8  Его можно использовать для реализации рендеринга «порядка изображений» путем проецирования луча для каждого пикселя и поиска соответствующей точки на сцене. Проецирование лучей — это фундаментальная операция, используемая как для графических, так и для неграфических целей, [22] : 6  например, для определения того, находится ли точка в тени, или проверки того, что видит враг в игре .
Трассировка лучей
Имитирует отскакивающие пути света, вызванные зеркальным отражением и преломлением , требуя различного количества операций луча для каждого пути. Расширенные формы используют методы Монте-Карло для визуализации эффектов, таких как площадные источники света, глубина резкости , размытые отражения и мягкие тени , но вычисление глобального освещения обычно находится в области трассировки пути. [21] : 9-13  [23]
Радиосити
Подход анализа конечных элементов , который разбивает поверхности в сцене на части и оценивает количество света, которое каждая часть получает от источников света или косвенно от других поверхностей. Как только освещенность каждой поверхности известна, сцену можно визуализировать с помощью растеризации или трассировки лучей. [24] : 888-890, 1044-1045 
Трассировка пути
Использует интеграцию Монте-Карло с упрощенной формой трассировки лучей, вычисляя среднюю яркость выборки возможных путей, которые может пройти фотон при движении от источника света к камере (для некоторых изображений необходимо отбирать тысячи путей на пиксель [22] : 8  ). Он был представлен как статистически беспристрастный способ решения уравнения рендеринга , давая трассировке лучей строгую математическую основу. [25] [21] : 11-13 

Каждый из вышеперечисленных подходов имеет множество вариаций, и есть некоторые совпадения. Трассировка пути может рассматриваться как отдельная техника или особый тип трассировки лучей. [24] : 846, 1021  Обратите внимание, что использование терминологии, связанной с трассировкой лучей и трассировкой пути, значительно изменилось с течением времени. [21] : 7 

Визуализация фрактального ландшафта с помощью ray marching

Ray marching — это семейство алгоритмов, используемых при ray casting для поиска пересечений между лучом и сложным объектом, таким как объемный набор данных или поверхность, определяемая функцией расстояния со знаком . Это не метод рендеринга сам по себе, но он может быть включен в трассировку лучей и трассировку пути, и используется при растеризации для реализации отражения в пространстве экрана и других эффектов. [21] : 13 

Метод, называемый картированием фотонов или трассировкой фотонов, использует прямую трассировку лучей (также называемую трассировкой частиц ), отслеживая пути фотонов от источника света к объекту, а не обратно от камеры. Дополнительные данные, собранные этим процессом, используются вместе с обычной обратной трассировкой лучей или трассировкой пути. [24] : 1037-1039  Рендеринг сцены с использованием только прямой трассировки лучей непрактичен, хотя он более точно соответствует реальности, поскольку необходимо смоделировать огромное количество фотонов, лишь малая часть которых фактически попадает в камеру. [26] : 7-9  [20] : 587 

Рендеринг в реальном времени, включая графику видеоигр, обычно использует растеризацию, но все чаще сочетает ее с трассировкой лучей и трассировкой пути. [22] : 2  Чтобы обеспечить реалистичное глобальное освещение , рендеринг в реальном времени часто полагается на предварительно отрендеренное («запеченное») освещение для неподвижных объектов. Для движущихся объектов он может использовать технику, называемую световыми зондами , в которой освещение записывается путем рендеринга всенаправленных видов сцены в выбранных точках пространства (часто точек на сетке, чтобы упростить интерполяцию ). Они похожи на карты окружения , но обычно используют очень низкое разрешение или приближение, такое как сферические гармоники . [27] (Примечание: Blender использует термин «световые зонды» для более общего класса предварительно записанных данных освещения, включая карты отражения. [28] )

Растеризация

Визуализация чрезвычайно большого телескопа

Термин «растеризация» (в широком смысле) охватывает множество методов, используемых для 2D-рендеринга и 3D-рендеринга в реальном времени . 3D- мультфильмы визуализировались с помощью растеризации до того, как трассировка лучей и трассировка пути стали практичными.

Рендерер объединяет растеризацию с обработкой геометрии (которая не является специфичной для растеризации) и обработкой пикселей , которая вычисляет значения цвета RGB , которые помещаются в буфер кадра для отображения. [9] : 2.1  [19] : 9 

Основными задачами растеризации (включая обработку пикселей) являются: [9] : 2, 3.8, 23.1.1 

3D-растеризация обычно является частью графического конвейера , в котором приложение предоставляет списки треугольников для рендеринга, а система рендеринга преобразует и проецирует их координаты, определяет, какие треугольники потенциально видны в области просмотра , и выполняет указанные выше задачи растеризации и обработки пикселей перед отображением конечного результата на экране. [9] : 2.1  [19] : 9 

Исторически 3D-растеризация использовала алгоритмы, такие как алгоритм Уорнока и рендеринг сканлайна (также называемый «скан-преобразованием»), которые могут обрабатывать произвольные полигоны и могут растеризовать множество фигур одновременно. Хотя такие алгоритмы по-прежнему важны для 2D-рендеринга, 3D-рендеринг теперь обычно делит фигуры на треугольники и растеризует их по отдельности, используя более простые методы. [29] [30] [20] : 456, 561–569 

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

После проецирования 3D-координат на плоскость изображения растеризация в первую очередь является 2D-проблемой, но 3-е измерение требует удаления скрытых поверхностей . Ранняя компьютерная графика использовала геометрические алгоритмы или ray casting для удаления скрытых частей фигур или использовала алгоритм художника , который сортирует фигуры по глубине (расстоянию от камеры) и визуализирует их сзади вперед. Сортировка по глубине позже была исключена путем включения сравнения глубины в алгоритм визуализации строк сканирования . Алгоритм z-буфера выполняет сравнения косвенно, включая глубину или значение «z» в буфер кадра . Пиксель покрывается фигурой только в том случае, если значение z этой фигуры ниже (указывая на близость к камере), чем текущее значение z в буфере. Z-буфер требует дополнительной памяти (дорогой ресурс на момент его изобретения), но упрощает код растеризации и допускает несколько проходов. Память теперь быстрее и ее больше, а z-буфер почти всегда используется для рендеринга в реальном времени. [32] [33] [20] : 553–570  [9] : 2.5.2 

Недостатком базового алгоритма z-буфера является то, что каждый пиксель либо полностью покрывается одним объектом, либо заполняется фоновым цветом, что приводит к появлению неровных краев на конечном изображении. Ранние подходы к сглаживанию решали эту проблему путем обнаружения частичного покрытия пикселя формой и вычисления покрытой области. A-буфер (и другие методы субпиксельной и множественной выборки ) решают проблему менее точно, но с более высокой производительностью. Для 3D-графики в реальном времени стало обычным использовать сложные эвристики (и даже нейронные сети ) для выполнения сглаживания. [33] [34] [19] : 9.3  [9] : 5.4.2 

В 3D-растеризации цвет обычно определяется пиксельным шейдером или фрагментным шейдером , небольшой программой, которая запускается для каждого пикселя. Шейдер не имеет (или не может) прямого доступа к 3D-данным для всей сцены (это было бы очень медленно и привело бы к алгоритму, похожему на трассировку лучей), и были разработаны различные методы для рендеринга эффектов, таких как тени и отражения, с использованием только текстурного отображения и нескольких проходов. [19] : 17.8 

Более старые и более простые реализации 3D-растеризации не поддерживали шейдеры и использовали простые методы затенения, такие как плоское затенение (освещение вычисляется один раз для каждого треугольника, который затем визуализируется полностью в одном цвете), затенение Гуро (освещение вычисляется с использованием векторов нормалей, определенных в вершинах, а затем цвета интерполируются по каждому треугольнику) или затенение Фонга (векторы нормалей интерполируются по каждому треугольнику, а освещение вычисляется для каждого пикселя). [19] : 9.2 

До недавнего времени Pixar использовала растеризацию для рендеринга своих анимационных фильмов . В отличие от рендереров, обычно используемых для графики в реальном времени, система рендеринга Reyes в программном обеспечении RenderMan от Pixar была оптимизирована для рендеринга очень маленьких (размером с пиксель) полигонов и включала методы стохастической выборки, которые обычно ассоциируются с трассировкой лучей . [2] : 2, 6.3  [35]

Лучевое литье

Один из самых простых способов визуализации 3D-сцены — это проверка пересечения луча , начинающегося в точке обзора («глаз» или «камера»), с любой геометрической фигурой в сцене, повторяя этот тест, используя другое направление луча для каждого пикселя. Этот метод, называемый ray casting , был важен в ранней компьютерной графике и является фундаментальным строительным блоком для более продвинутых алгоритмов. Ray casting может использоваться для визуализации фигур, определенных операциями конструктивной твердотельной геометрии (CSG). [21] : 8-9  [36] : 246–249 

Ранние эксперименты по отбрасыванию лучей включают работу Артура Аппеля в 1960-х годах. Аппель визуализировал тени, отбрасывая дополнительный луч от каждой видимой точки поверхности к источнику света. Он также пытался визуализировать плотность освещения, отбрасывая случайные лучи от источника света к объекту и нанося точки пересечения (аналогично более поздней технике, называемой фотонным отображением ). [37]

Метод Ray marching можно использовать для поиска первого пересечения луча со сложной формой, например, с этим фракталом Мандельбульба .

При рендеринге сцен, содержащих много объектов, проверка пересечения луча с каждым объектом становится очень дорогой. Специальные структуры данных используются для ускорения этого процесса, позволяя быстро исключать большое количество объектов (например, объекты за камерой). Эти структуры аналогичны индексам базы данных для поиска соответствующих объектов. Наиболее распространенными являются иерархия ограничивающего объема (BVH), которая хранит предварительно вычисленный ограничивающий прямоугольник или сферу для каждой ветви дерева объектов, и дерево kd , которое рекурсивно делит пространство на две части. Современные графические процессоры включают аппаратное ускорение для тестов пересечения BVH. Деревья kd являются особым случаем бинарного разбиения пространства , которое часто использовалось в ранней компьютерной графике (оно также может генерировать порядок растеризации для алгоритма художника ). Октодеревья , еще один исторически популярный метод, по-прежнему часто используются для объемных данных. [22] : 16–17  [38] [36] [5] : 36.2 

Геометрических формул достаточно для нахождения пересечения луча с такими фигурами, как сферы , многоугольники и многогранники , но для большинства криволинейных поверхностей нет аналитического решения , или пересечение трудно вычислить точно с использованием чисел с плавающей точкой ограниченной точности . Иногда можно использовать алгоритмы поиска корней , такие как метод Ньютона . Чтобы избежать этих осложнений, криволинейные поверхности часто аппроксимируются как сетки треугольников . Объемный рендеринг (например, рендеринг облаков и дыма) и некоторые поверхности, такие как фракталы , могут потребовать ray marching вместо базового ray casting. [39] [21] : 13  [9] : 14, 17.3 

Трассировка лучей

Спиральная сфера и Джулия, деталь , компьютерное изображение, созданное визуальным художником Робертом У. МакГрегором с использованием только POV-Ray 3.6 и его встроенного языка описания сцен.

Трассировка лучей направлена ​​на имитацию естественного потока света, интерпретируемого как частицы. Часто методы трассировки лучей используются для аппроксимации решения уравнения рендеринга путем применения к нему методов Монте-Карло . Некоторые из наиболее используемых методов — это трассировка пути , двунаправленная трассировка пути или транспортировка света Metropolis , но также используются полуреалистичные методы, такие как трассировка лучей в стиле Уиттеда или гибриды. В то время как большинство реализаций позволяют свету распространяться по прямым линиям, существуют приложения для имитации релятивистских эффектов пространства-времени. [40]

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

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

При трассировке лучей распределения в каждой точке пересечения может быть порождено несколько лучей. Однако при трассировке пути на каждом пересечении запускается только один луч или ни одного, используя статистическую природу экспериментов Монте-Карло .

Достижения в области технологий графических процессоров сделали трассировку лучей в реальном времени возможной в играх, хотя в настоящее время она почти всегда используется в сочетании с растеризацией. [22] : 2  Это позволяет создавать визуальные эффекты, которые трудно реализовать только с помощью растеризации, включая отражение от изогнутых поверхностей и взаимно отражающих объектов, [41] : 305  и тени, которые точны в широком диапазоне расстояний и ориентаций поверхности. [42] : 159-160  Поддержка трассировки лучей включена в последние версии графических API, используемых в играх, таких как DirectX , Metal и Vulkan . [43]

Радиосити

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

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

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

В расширенном моделировании излучательности рекурсивные алгоритмы конечных элементов «отскакивают» свет вперед и назад между поверхностями в модели, пока не будет достигнут некоторый предел рекурсии. Окраска одной поверхности таким образом влияет на окраску соседней поверхности, и наоборот. Полученные значения освещенности по всей модели (иногда включая пустые пространства) сохраняются и используются в качестве дополнительных входных данных при выполнении вычислений в модели ray-casting или ray-tracing.

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

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

Благодаря этому излучательность является основным компонентом ведущих методов рендеринга в реальном времени и использовалась от начала до конца при создании большого количества известных недавних полнометражных анимационных 3D-мультфильмов.

Трассировка пути

В рамках подхода, известного как физически обоснованный рендеринг , трассировка пути стала доминирующей техникой для рендеринга реалистичных сцен, включая эффекты для фильмов. [44] Например, популярное программное обеспечение для 3D-графики с открытым исходным кодом Blender использует трассировку пути в своем рендерере Cycles. [45] Изображения, полученные с использованием трассировки пути для глобального освещения , как правило, более шумные, чем при использовании излучательности (основного конкурирующего алгоритма), но излучательность может быть трудно применима к сложным сценам и подвержена артефактам, которые возникают из-за использования мозаичного представления освещенности . [44] [24] : 975-976, 1045 

Как и распределенная трассировка лучей , трассировка пути является разновидностью стохастической или рандомизированной трассировки лучей , которая использует интеграцию Монте-Карло или квази-Монте-Карло . Она была предложена и названа в 1986 году Джимом Каджией в той же статье, что и уравнение рендеринга . Каджийя заметил, что большую часть сложности распределенной трассировки лучей можно было бы избежать, если бы трассировка была только одной траектории от камеры за раз (в реализации Каджии это правило «отсутствия ветвления» было нарушено путем трассировки дополнительных лучей от каждой точки пересечения поверхностей до случайно выбранных точек на каждом источнике света). Каджийя предложил уменьшить шум, присутствующий в выходных изображениях, с помощью стратифицированной выборки и выборки по важности для принятия случайных решений, таких как выбор луча для следования на каждом этапе пути. Даже с этими методами трассировка пути была бы непрактичной для рендеринга фильмов с использованием доступных в то время компьютеров, поскольку вычислительные затраты на генерацию достаточного количества выборок для снижения дисперсии до приемлемого уровня были слишком высоки. «Дом-монстр» , первый художественный фильм, полностью созданный с использованием трассировки пути, был выпущен лишь 20 лет спустя. [25] [44] [46]

В своей базовой форме трассировка пути неэффективна (требует слишком много образцов) для рендеринга каустики и сцен, где свет проникает непрямо через узкие пространства. Попытки устранить эти недостатки были предприняты в 1990-х годах. Двунаправленная трассировка пути включает в себя фотонное картирование , трассировку лучей как от источника света, так и от камеры, и случайное сопряжение этих путей. Транспорт света Metropolis выбирает пути, изменяя пути, которые были ранее отслежены, тратя больше времени на изучение путей, которые похожи на другие «яркие» пути, что увеличивает вероятность обнаружения еще более ярких путей. Выборка с множественной важностью обеспечивает способ уменьшения дисперсии при объединении образцов из более чем одного метода выборки, особенно когда некоторые образцы намного шумнее других. [44] [47]

Эта более поздняя работа была обобщена и расширена в докторской диссертации Эрика Вича 1997 года, которая помогла повысить интерес к трассировке пути в сообществе компьютерной графики. Рендерер Arnold , впервые выпущенный в 1998 году, доказал, что трассировка пути была практичной для рендеринга кадров для фильмов, и что в киноиндустрии существовал спрос на беспристрастный и физически обоснованный рендеринг; начали появляться другие коммерческие и открытые рендереры трассировки пути. Вычислительная стоимость была решена быстрым прогрессом в производительности ЦП и кластера . [44]

Относительная простота трассировки пути и ее природа как метода Монте-Карло (выборка сотен или тысяч путей на пиксель) сделали ее привлекательной для реализации на графическом процессоре , особенно на последних графических процессорах, которые поддерживают технологию ускорения трассировки лучей, таких как RTX и OptiX от Nvidia . [48] Однако двунаправленную трассировку пути и транспортировку света Metropolis сложнее эффективно реализовать на графическом процессоре. [49] [50]

Исследования по улучшению трассировки пути продолжаются. Последние подходы к управлению путем создают аппроксимации распределения вероятностей светового поля в каждом объеме пространства, поэтому пути могут быть выбраны более эффективно. [51] Было разработано много методов для шумоподавления выходных данных трассировки пути, уменьшая количество путей, необходимых для достижения приемлемого качества, с риском потери некоторых деталей или введения мелкомасштабных артефактов, которые более нежелательны, чем шум; [52] [53] нейронные сети теперь широко используются для этой цели. [54] [55] [56]

Нейронный рендеринг

Нейронный рендеринг — это метод рендеринга с использованием искусственных нейронных сетей . [57] [58] Нейронный рендеринг включает в себя методы рендеринга на основе изображений , которые используются для реконструкции 3D-моделей из 2-мерных изображений. [57] Одним из таких методов является фотограмметрия , которая представляет собой метод, в котором набор изображений с разных углов объекта превращается в 3D-модель. Также были недавние разработки в области генерации и рендеринга 3D-моделей из текста и грубых рисунков, в частности, Nvidia , Google и различными другими компаниями.

Научно-математическая основа

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

Термин « физически обоснованный » указывает на использование физических моделей и приближений, которые являются более общими и широко принятыми за пределами рендеринга. Определенный набор связанных методов постепенно утвердился в сообществе рендеринга.

Базовые концепции относительно просты, но не поддаются вычислению; и единый элегантный алгоритм или подход оказался неуловимым для более универсальных рендереров. Чтобы удовлетворить требованиям надежности, точности и практичности, реализация будет представлять собой сложную комбинацию различных методов.

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

Математика, используемая при рендеринге, включает: линейную алгебру , исчисление , числовую математику , обработку сигналов и методы Монте-Карло .

Уравнение рендеринга

Это ключевая академическая/теоретическая концепция в рендеринге. Она служит наиболее абстрактным формальным выражением неперцептуального аспекта рендеринга. Все более полные алгоритмы можно рассматривать как решения частных формулировок этого уравнения.

Значение: в определенном положении и направлении, исходящий свет (L o ) является суммой испускаемого света (L e ) и отраженного света. Отраженный свет является суммой входящего света (L i ) со всех направлений, умноженной на отражение поверхности и входящий угол. Соединяя исходящий свет с внутренним светом через точку взаимодействия, это уравнение обозначает весь «перенос света» – все движение света – в сцене.

Функция распределения двунаправленного отражения

Функция распределения двунаправленного отражения (BRDF) выражает простую модель взаимодействия света с поверхностью следующим образом:

Взаимодействие света часто аппроксимируется еще более простыми моделями: диффузным отражением и зеркальным отражением, хотя обе модели ТАКЖЕ могут быть BRDF.

Геометрическая оптика

Рендеринг практически полностью связан с аспектом частиц физики света, известным как геометрическая оптика . Рассмотрение света на его базовом уровне как частиц, отскакивающих друг от друга, является упрощением, но уместным: волновые аспекты света незначительны в большинстве сцен и их значительно сложнее моделировать. Известные явления волнового аспекта включают дифракцию (как видно по цветам компакт-дисков и DVD ) и поляризацию (как видно на ЖК-дисплеях ). Оба типа эффекта, если необходимо, создаются путем корректировки модели отражения, ориентированной на внешний вид.

Визуальное восприятие

Хотя ему уделяется меньше внимания, понимание человеческого визуального восприятия ценно для рендеринга. Это в основном потому, что дисплеи изображений и человеческое восприятие имеют ограниченные диапазоны. Рендерер может имитировать широкий диапазон яркости и цвета света, но современные дисплеи — киноэкран, компьютерный монитор и т. д. — не могут справиться с таким количеством, и что-то должно быть отброшено или сжато. Человеческое восприятие также имеет ограничения, и поэтому ему не нужно давать изображения большого диапазона для создания реализма. Это может помочь решить проблему размещения изображений на дисплеях и, кроме того, подсказать, какие сокращения можно использовать при моделировании рендеринга, поскольку определенные тонкости не будут заметны. Эта связанная тема — тональная компрессия .

Отбор проб и фильтрация

Одной из проблем, с которой должна сталкиваться любая система рендеринга, независимо от того, какой подход она использует, является проблема выборки . По сути, процесс рендеринга пытается изобразить непрерывную функцию от пространства изображения к цветам, используя конечное число пикселей. Как следствие теоремы выборки Найквиста-Шеннона (или теоремы Котельникова), любая пространственная форма волны, которая может быть отображена, должна состоять как минимум из двух пикселей, что пропорционально разрешению изображения . Проще говоря, это выражает идею о том, что изображение не может отображать детали, пики или впадины в цвете или интенсивности, которые меньше одного пикселя.

Если использовать наивный алгоритм рендеринга без какой-либо фильтрации, высокие частоты в функции изображения приведут к появлению уродливого алиасинга в конечном изображении. Алиасинг обычно проявляется в виде неровностей или зубчатых краев на объектах, где видна пиксельная сетка. Чтобы удалить алиасинг, все алгоритмы рендеринга (если они должны создавать красивые изображения) должны использовать какой-либо фильтр нижних частот в функции изображения для удаления высоких частот, процесс, называемый сглаживанием .

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

Рендеринг обычно ограничен доступной вычислительной мощностью и пропускной способностью памяти , поэтому было разработано специализированное оборудование для его ускорения («ускорения»), особенно для рендеринга в реальном времени . Аппаратные функции, такие как кадровый буфер для растровой графики, необходимы для плавного отображения вывода рендеринга в реальном времени.

История

В эпоху векторных мониторов (также называемых каллиграфическими дисплеями ) блок обработки отображения (DPU) представлял собой специализированный ЦП или сопроцессор , который поддерживал список визуальных элементов и непрерывно перерисовывал их на экране, управляя электронным лучом . Усовершенствованные DPU, такие как Line Drawing System-1 компании Evans & Sutherland (и более поздние модели, выпущенные в 1980-х годах), включали функции преобразования трехмерных координат для ускорения рендеринга каркасных изображений . [20] : 93–94, 404–421  [59] Evans & Sutherland также создали проекционную систему планетария Digistar , которая представляла собой векторный дисплей, который мог отображать как звезды, так и каркасную графику (векторные Digistar и Digistar II использовались во многих планетариях, и некоторые из них, возможно, все еще находятся в эксплуатации). [60] [61] [62] Прототип Digistar использовался для рендеринга 3D-звездных полей для фильма « Звездный путь 2: Гнев Хана» — одних из первых 3D-последовательностей компьютерной графики, когда-либо показанных в художественном фильме. [63]

В 1970-х и начале 1980-х годов рендеринг затененной 3D-графики обычно реализовывался на компьютерах общего назначения, таких как PDP-10 , используемый исследователями в Университете Юты [64] [33] . Было трудно ускорить с помощью специализированного оборудования, поскольку оно включает в себя конвейер сложных шагов, требующий адресации данных, принятия решений и вычислительных возможностей, обычно предоставляемых только центральными процессорами (хотя были предложены специальные схемы для ускорения определенных операций [64] ). Суперкомпьютеры или специально разработанные многопроцессорные компьютеры или кластеры иногда использовались для трассировки лучей. [36] В 1981 году Джеймс Х. Кларк и Марк Ханна разработали Geometry Engine, чип VLSI для выполнения некоторых шагов конвейера 3D-растеризации, и основали компанию Silicon Graphics (SGI) для коммерциализации этой технологии. [65] [66]

Домашние компьютеры и игровые консоли в 1980-х годах содержали графические сопроцессоры , которые были способны прокручивать и заполнять области дисплея, а также рисовать спрайты и линии, хотя они не были полезны для рендеринга реалистичных изображений. [67] [68] К концу 1980-х годов начали появляться видеокарты для ПК и аркадные игры с ускорением 3D-рендеринга, а в 1990-х годах такая технология стала обычным явлением. Сегодня даже маломощные мобильные процессоры обычно включают функции ускорения 3D-графики. [65] [69]

Графические процессоры

3D-графические ускорители 1990 -х годов превратились в современные графические процессоры. Графические процессоры являются процессорами общего назначения, как и центральные процессоры , но они предназначены для задач, которые можно разбить на множество небольших, похожих, в основном независимых подзадач (например, рендеринг отдельных пикселей) и выполнять параллельно . Это означает, что графический процессор может ускорить любой алгоритм рендеринга, который можно разбить на подзадачи таким образом, в отличие от 3D-ускорителей 1990-х годов, которые были разработаны только для ускорения определенных алгоритмов растеризации и простых эффектов затенения и освещения (хотя трюки могли использоваться для выполнения более общих вычислений). [9] : ch3  [70]

Из-за своего происхождения графические процессоры, как правило, по-прежнему обеспечивают специализированное аппаратное ускорение для некоторых этапов традиционного конвейера 3D-растеризации , включая удаление скрытых поверхностей с использованием z-буфера и текстурное отображение с помощью MIP-карт , но эти функции больше не всегда используются. [9] : ch3  Современные графические процессоры имеют функции для ускорения поиска пересечений лучей с иерархией ограничивающего объема , чтобы помочь ускорить все варианты трассировки лучей и трассировки пути , [38] а также функции ускорения нейронных сетей, иногда полезные для рендеринга. [71]

Графические процессоры обычно интегрируются с системами памяти с высокой пропускной способностью для поддержки требований к пропускной способности чтения и записи для рендеринга высокого разрешения в реальном времени, особенно когда для рендеринга кадра требуется несколько проходов, однако задержка памяти может быть выше, чем у центрального процессора, что может быть проблемой, если критический путь в алгоритме включает в себя множество обращений к памяти. Конструкция графического процессора принимает высокую задержку как неизбежную (отчасти потому, что большое количество потоков совместно используют шину памяти ) и пытается «скрыть» ее, эффективно переключаясь между потоками, поэтому другой поток может выполнять вычисления, пока первый поток ожидает завершения чтения или записи. [9] : ch3  [72] [73]

Алгоритмы рендеринга будут работать эффективно на GPU только в том случае, если они могут быть реализованы с использованием небольших групп потоков, которые выполняют в основном одни и те же операции. В качестве примера кода, который соответствует этому требованию: при рендеринге небольшого квадрата пикселей в простом изображении с трассировкой лучей все потоки, скорее всего, будут пересекать лучи с одним и тем же объектом и выполнять одни и те же вычисления освещения. По причинам производительности и архитектуры графические процессоры запускают группы из примерно 16-64 потоков, называемых варпами или волновыми фронтами, в режиме lock-step (все потоки в группе выполняют одни и те же инструкции одновременно). Если не всем потокам в группе нужно запускать определенные блоки кода (из-за условий), то некоторые потоки будут простаивать, или результаты их вычислений будут отброшены, что приведет к снижению производительности. [9] : ch3  [73]

Хронология алгоритмов и методов

Ниже приведена приблизительная хронология часто упоминаемых методов визуализации, включая области текущих исследований. Обратите внимание, что даже в случаях, когда идея упоминалась в конкретной статье, почти всегда было несколько исследователей, работающих в той же области (включая более ранние связанные работы). Когда метод предлагается впервые, он часто бывает очень неэффективным, и требуются дополнительные исследования и практические усилия, чтобы превратить его в полезную технику. [24] : 887 

Список сосредоточен на академических исследованиях и не включает аппаратное обеспечение. (Более подробную историю см. в разделе #Внешние ссылки, а также в разделах Компьютерная графика#История и Золотой_век_аркадных_видеоигр#Технологии .)

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

Ссылки

  1. ^ "Что такое движок рендеринга? | Словарь". Архивировано из оригинала 2024-02-21 . Получено 2024-02-21 .
  2. ^ abcdef Рагхавачари, Сать (2005). Рендеринг для начинающих . Focal Press. ISBN 0-240-51935-3.
  3. ^ ab Adobe Systems Incorporated (1990). Справочное руководство по языку PostScript (2-е изд.). Addison-Wesley Publishing Company. ISBN 0-201-18127-4.
  4. ^ ab "SVG: Scalable Vector Graphics". Mozilla Corporation. 7 августа 2024 г. Архивировано из оригинала 24 августа 2024 г. Получено 31 августа 2024 г.
  5. ^ ab Хьюз, Джон Ф.; Ван Дам, Андрис ; Макгуайр, Морган; Склар, Дэвид Ф.; Фоли, Джеймс Д.; Файнер, Стивен К.; Экли, Курт (2014). Компьютерная графика: принципы и практика (3-е изд.). Addison-Wesley. ISBN 978-0-321-39952-6.
  6. ^ ab "Blender 4.2 Manual: Importing & Exporting Files". docs.blender.org . Blender Foundation. Архивировано из оригинала 31 августа 2024 г. Получено 31 августа 2024 г.
  7. ^ Фарр, Мэтт; Якоб, Венцель; Хамфрис, Грег (2023). "pbrt-v4 Input File Format" . Получено 31 августа 2024 г. .
  8. ^ ab Dunlop, Renee (2014). Основы производственного конвейера для фильмов и игр . Focal Press. ISBN 978-1-315-85827-2.
  9. ^ abcdefghijklmn Акенин-Мёллер, Томас; Хейнс, Эрик; Хоффман, Нати; Пеше, Анджело; Иваницкий, Михал; Хиллер, Себастьен (2018). Рендеринг в реальном времени (4-е изд.). Бока-Ратон, Флорида: AK Peters/CRC Press. ISBN 978-1138627000.
  10. ^ "About OpenVDB". www.openvdb.org . Academy Software Foundation. Архивировано из оригинала 3 сентября 2024 г. Получено 31 августа 2024 г.
  11. ^ Museth, Ken (июнь 2013 г.). "VDB: High-Resolution Sparse Volumes with Dynamic Topology" (PDF) . ACM Transactions on Graphics . 32 (3). doi :10.1145/2487228.2487235. Архивировано (PDF) из оригинала 15 апреля 2024 г. . Получено 31 августа 2024 г. .
  12. ^ Bridson, Robert (2015). Моделирование жидкости для компьютерной графики (2-е изд.). AK Peters/CRC Press. ISBN 978-1-482-23283-7.
  13. ^ Шмид, Катрин (2 марта 2023 г.). «Краткая 170-летняя история полей нейронного излучения (NeRF), голограмм и световых полей». radiancefields.com . Архивировано из оригинала 31 августа 2024 г. . Получено 31 августа 2024 г. .
  14. ^ ab Mildenhall, Ben; Srinivasan, Pratul P.; Tancik, Matthew; Barron, Jonathan T.; Ramamoorthi, Ravi; Ng, Ren (2020). "NeRF: Представление сцен как полей нейронного излучения для синтеза представлений" . Получено 31 августа 2024 г. .
  15. ^ ab Kerbl, Bernhard; Kopanas, Georgios; Leimkühler, Thomas; Drettakis, George (июль 2023 г.). "3D Gaussian Splatting for Real-Time Radiance Field Rendering". ACM Transactions on Graphics . 42 (4): 1–14. arXiv : 2308.04079 . doi : 10.1145/3592433. Архивировано из оригинала 22 августа 2024 г. Получено 31 августа 2024 г.
  16. ^ ab Pharr, Matt; Jakob, Wenzel; Humphreys, Greg (2023). "pbrt-v4 User's Guide". Архивировано из оригинала 3 сентября 2024 г. Получено 31 августа 2024 г.
  17. ^ ab Brinkmann, Ron (2008). Искусство и наука цифрового композитинга (2-е изд.). Morgan Kaufmann. ISBN 978-0-12-370638-6.
  18. ^ "Blender 4.2 Manual: Rendering: Render Output: Rendering Animations". docs.blender.org . Blender Foundation. Архивировано из оригинала 31 августа 2024 г. Получено 31 августа 2024 г.
  19. ^ abcdefgh Маршнер, Стив; Ширли, Питер (2022). Основы компьютерной графики (5-е изд.). CRC Press. ISBN 978-1-003-05033-9.
  20. ^ abcdef Фоли, Джеймс Д. ; Ван Дам, Андрис (1982). Основы интерактивной компьютерной графики . Addison-Wesley Publishing Company, Inc. ISBN 0-201-14468-9.
  21. ^ abcdefg Хейнс, Эрик; Ширли, Питер (25 февраля 2019 г.). "1. Терминология трассировки лучей". Ray Tracing Gems: высококачественный рендеринг в реальном времени с помощью DXR и других API. Беркли, Калифорния: Apress. doi : 10.1007/978-1-4842-4427-2. ISBN 978-1-4842-4427-2. S2CID  71144394. Архивировано из оригинала 27 января 2024 г. . Получено 27 января 2024 г. .
  22. ^ abcde Акенин-Мёллер, Томас; Хейнс, Эрик; Хоффман, Нати; Пеше, Анджело; Иваницкий, Михал; Хиллер, Себастьен (6 августа 2018 г.). "Онлайн-глава 26. Трассировка лучей в реальном времени" (PDF) . Рендеринг в реальном времени (4-е изд.). Бока-Ратон, Флорида: AK Peters/CRC Press. ISBN 978-1138627000. Архивировано (PDF) из оригинала 27 января 2024 г. . Получено 27 января 2024 г. .
  23. ^ Кук, Роберт Л. (11 апреля 2019 г.) [1989]. "5. Стохастическая выборка и распределенная трассировка лучей". В Glassner, Andrew S. (ред.). Введение в трассировку лучей (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4. Архивировано (PDF) из оригинала 27 января 2024 г. . Получено 27 января 2024 г. .
  24. ^ abcde Glassner, Andrew S. (2011) [1995]. Принципы цифрового синтеза изображений (PDF) . 1.0.1. Morgan Kaufmann Publishers, Inc. ISBN 978-1-55860-276-2. Архивировано (PDF) из оригинала 2024-01-27 . Получено 2024-01-27 .
  25. ^ abcd Каджия, Джеймс Т. (август 1986). «Уравнение рендеринга». ACM SIGGRAPH Computer Graphics . 20 (4): 143–150. doi :10.1145/15886.15902. Архивировано из оригинала 3 сентября 2024 года . Получено 27 января 2024 года .
  26. ^ Гласснер, Эндрю С. (11 апреля 2019 г.) [1989]. "1. Обзор трассировки лучей". Введение в трассировку лучей (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4. Архивировано (PDF) из оригинала 27 января 2024 г. . Получено 27 января 2024 г. .
  27. ^ "Unity Manual:Light Probes: Introduction". docs.unity3d.com . Архивировано из оригинала 3 сентября 2024 г. Получено 27 января 2024 г.
  28. ^ "Blender Manual: Rendering: EEVEE: Light Probes: Introduction". docs.blender.org . Blender Foundation. Архивировано из оригинала 24 марта 2024 года . Получено 27 января 2024 года .
  29. ^ ab Warnock, John (июнь 1969), Алгоритм скрытой поверхности для полутоновых изображений, созданных компьютером, Университет Юты, TR 69-249 , получено 19 сентября 2024 г.
  30. ^ ab Bouknight, WJ (1970). "Процедура генерации трехмерных полутоновых компьютерных графических презентаций". Communications of the ACM . 13 (9): 527–536. doi : 10.1145/362736.362739 . S2CID  15941472.
  31. ^ Stamm, Beat (21 июня 2018 г.). «Возвращение к трагедии растра при низком разрешении: возможности и проблемы, выходящие за рамки «дельта-хинтинга»». rastertragedy.com . Получено 19 сентября 2024 г.
  32. ^ ab Watkins, Gary Scott (июнь 1970), A Real Time Visible Surface Algorithm, University of Utah , получено 19 сентября 2024 г.
  33. ^ abcde Кэтмелл, Эдвин (декабрь 1974 г.). Алгоритм подразделения для компьютерного отображения криволинейных поверхностей (PDF) (диссертация). Университет Юты . Получено 19 сентября 2024 г.
  34. ^ ab Карпентер, Лорен (июль 1984 г.). «А-буфер, метод скрытой сглаженной поверхности». Компьютерная графика . 18 (3): 103–108. doi :10.1145/964965.808585.
  35. ^ ab Кук, Роберт Л. ; Карпентер, Лорен ; Кэтмелл, Эдвин (июль 1987 г.). "Архитектура рендеринга изображений Рейеса" (PDF) . SIGGRAPH Comput. Graph . 21 (4). Ассоциация вычислительной техники: 95–102. doi :10.1145/37402.37414. ISSN  0097-8930. Архивировано (PDF) из оригинала 2011-07-15 . Получено 19 сентября 2024 г. .
  36. ^ abc Арво, Джеймс; Кирк, Дэвид (11 апреля 2019 г.) [1989]. "6. Обзор методов ускорения трассировки лучей". В Glassner, Andrew S. (ред.). Введение в трассировку лучей (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4. Получено 13 сентября 2024 г. .
  37. ^ ab Appel, A. (1968). "Some techniques for shading machine renderings of solids" (PDF) . Труды Весенней совместной компьютерной конференции . Том 32. стр. 37–49. Архивировано (PDF) из оригинала 2012-03-13 . Получено 19 сентября 2024 .
  38. ^ ab Stich, Martin (25 февраля 2019 г.). «Предисловие». Ray Tracing Gems: высококачественный рендеринг в реальном времени с помощью DXR и других API. Беркли, Калифорния: Apress. doi : 10.1007/978-1-4842-4427-2. ISBN 978-1-4842-4427-2. S2CID  71144394 . Получено 13 сентября 2024 г. .
  39. ^ Ханрахан, Пэт (11 апреля 2019 г.) [1989]. "2. Обзор алгоритмов пересечения лучей и поверхностей". В Glassner, Andrew S. (ред.). Введение в трассировку лучей (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4. Архивировано (PDF) из оригинала 27 января 2024 г. . Получено 22 сентября 2024 г. .
  40. ^ «Релятивистская трассировка лучей: моделирование визуального восприятия быстро движущихся объектов». 1995. CiteSeerX 10.1.1.56.830 .  {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  41. ^ Лю, Эдвард; Льямас, Игнасио; Каньяда, Хуан; Келли, Патрик (25 февраля 2019 г.). «19: Кинематографический рендеринг в UE4 с трассировкой лучей в реальном времени и шумоподавлением». Ray Tracing Gems: высококачественный рендеринг в реальном времени с DXR и другими API. Беркли, Калифорния: Apress. doi : 10.1007/978-1-4842-4427-2. ISBN 978-1-4842-4427-2. S2CID  71144394. Архивировано из оригинала 27 января 2024 г. . Получено 27 января 2024 г. .
  42. ^ Боксански, Якуб; Виммер, Михаэль; Биттнер, Иржи (25 февраля 2019 г.). "13. Тени с трассировкой лучей: поддержание частоты кадров в реальном времени". Драгоценные камни трассировки лучей: высококачественный рендеринг в реальном времени с помощью DXR и других API. Беркли, Калифорния: Apress. doi : 10.1007/978-1-4842-4427-2. ISBN 978-1-4842-4427-2. S2CID  71144394. Архивировано из оригинала 27 января 2024 г. . Получено 27 января 2024 г. .
  43. ^ "Блог Khronos: трассировка лучей в Vulkan". www.khronos.org . Khronos® Group Inc. 15 декабря 2020 г. Получено 27 января 2024 г.
  44. ^ abcde Фарр, Мэтт ; Якоб, Венцель; Хамфрис, Грег (28 марта 2023 г.). "1.6". Физически обоснованный рендеринг: от теории к реализации (4-е изд.). Кембридж, Массачусетс: The MIT Press. ISBN 978-0262048026. Архивировано из оригинала 27 января 2024 г. . Получено 27 января 2024 г. .
  45. ^ "Blender Manual: Rendering: Cycles: Introduction". docs.blender.org . Blender Foundation. Архивировано из оригинала 3 сентября 2024 г. Получено 27 января 2024 г.
  46. ^ Кулла, Кристофер (30 июля 2017 г.), Арнольд в Sony Pictures Imageworks: От Monster House до Smurfs: The Lost Village (слайды курса) (PDF) , SIGGRAPH, Лос-Анджелес{{citation}}: CS1 maint: location missing publisher (link)
  47. ^ Вич, Эрик (1997). Надежные методы Монте-Карло для моделирования переноса света (PDF) (диссертация). Стэнфордский университет.
  48. ^ Фарр, Мэтт ; Якоб, Венцель; Хамфрис, Грег (28 марта 2023 г.). «15. Wavefront Rendering on GPUs». Physically Based Rendering: From Theory to Implementation (4-е изд.). Кембридж, Массачусетс: The MIT Press. ISBN 978-0262048026. Архивировано из оригинала 27 января 2024 г. . Получено 27 января 2024 г. .
  49. ^ Отте, Вилем (2015). Двунаправленная трассировка путей на графическом процессоре (PDF) (магистерская диссертация). Масариков университет, Брно.
  50. ^ Шмидт, Мартин; Лобачев, Олег; Гуте, Майкл (2016). «Когерентный транспорт света метрополии на графическом процессоре с использованием спекулятивных мутаций» (PDF) . Журнал WSCG . 24 (1): 1–8. ISSN  1213-6972.
  51. ^ Фарр, Мэтт ; Якоб, Венцель; Хамфрис, Грег (28 марта 2023 г.). «13. Дальнейшее чтение: Путь руководства». Физически обоснованный рендеринг: от теории к реализации (4-е изд.). Кембридж, Массачусетс: The MIT Press. ISBN 978-0262048026. Получено 8 сентября 2024 г. .
  52. ^ Фарр, Мэтт ; Якоб, Венцель; Хамфрис, Грег (28 марта 2023 г.). «5. Дальнейшее чтение: шумоподавление». Физически обоснованный рендеринг: от теории к реализации (4-е изд.). Кембридж, Массачусетс: The MIT Press. ISBN 978-0262048026. Архивировано из оригинала 27 января 2024 г. . Получено 27 января 2024 г. .
  53. ^ "Blender Manual: Rendering: Cycles: Optimizing Renders: Reducing Noise". docs.blender.org . Blender Foundation. Архивировано из оригинала 27 января 2024 г. Получено 27 января 2024 г.
  54. ^ "Blender Manual: Rendering: Cycles: Render Settings: Sampling". docs.blender.org . Blender Foundation. Архивировано из оригинала 27 января 2024 года . Получено 27 января 2024 года .
  55. ^ "Intel® Open Image Denoise: высокопроизводительная библиотека шумоподавления для трассировки лучей". www.openimagedenoise.org . Корпорация Intel. Архивировано из оригинала 6 января 2024 г. Получено 27 января 2024 г.
  56. ^ "NVIDIA OptiX™ AI-Accelerated Denoiser". developer.nvidia.com . NVIDIA Corporation. Архивировано из оригинала 18 января 2024 года . Получено 27 января 2024 года .
  57. ^ ab Tewari, A.; Fried, O.; Thies, J.; Sitzmann, V.; Lombardi, S.; Sunkavalli, K.; Martin-Brualla, R.; Simon, T.; Saragih, J.; Nießner, M.; Pandey, R.; Fanello, S.; Wetzstein, G.; Zhu, J.-Y.; Theobalt, C.; Agrawala, M.; Shechtman, E.; Goldman, DB; Zollhöfer, M. (2020). «Современное состояние нейронного рендеринга». Computer Graphics Forum . 39 (2): 701–727. arXiv : 2004.03805 . doi : 10.1111/cgf.14022. S2CID  215416317.
  58. ^ Найт, Уилл. «Новый трюк позволяет искусственному интеллекту видеть в 3D». Wired . ISSN  1059-1028. Архивировано из оригинала 2022-02-07 . Получено 2022-02-08 .
  59. ^ Evans & Sutherland Multi-Picture System (брошюра), Evans & Sutherland Corporation., 1979
  60. ^ "Городской научный музей Нагои - Путеводитель по выставке - Digistar II". www.ncsm.city.nagoya.jp . Городской научный музей Нагои . Получено 13 сентября 2024 г. .
  61. ^ "Evans_and_Sutherland Digistar-II". planetariums-database.org . База данных планетариев мира . Получено 13 сентября 2024 г. .
  62. ^ "Список планетариев, использующих Evans_and_Sutherland Digistar-II". planetariums-database.org . База данных планетариев мира . Получено 13 сентября 2024 г. .
  63. ^ Смит, Элви Рэй (октябрь 1982 г.). "Спецэффекты для Star Trek II: The Genesis Demo" (PDF) . American Cinematographer : 1038. Получено 13 сентября 2024 г.
  64. ^ ab Bùi, Tường-Phong (1973). Освещение для компьютерно-генерируемых изображений (PDF) (диссертация). Университет Юты.
  65. ^ ab Peddie, Jon (24 сентября 2020 г.). «Знаменитые графические чипы: Geometry Engine». www.computer.org . Институт инженеров по электротехнике и электронике (IEEE) . Получено 13 сентября 2024 г. .
  66. ^ Кларк, Джеймс Х. (1980). «Структурирование архитектуры системы СБИС» (PDF) . Lambda (2-й квартал): 25–30.
  67. ^ Фокс, Чарльз (2024). "11. РЕТРО-АРХИТЕКТУРЫ: 16-битный компьютерный дизайн с Commodore Amiga: понимание архитектуры". Архитектура компьютера . No Starch Press. ISBN 978-1-7185-0287-1.
  68. ^ "NES Dev Wiki: PPU" . www.nesdev.org . Несдев вики . Проверено 13 сентября 2024 г.
  69. ^ Гарольд, Дэвид (11 августа 2017 г.). «PowerVR в 25: история графической революции». blog.imaginationtech.com . Imagination Technologies Limited . Получено 13 сентября 2024 г. .
  70. ^ Пирси, Марк С.; Олано, Марк; Эйри, Джон; Унгар, П. Джеффри (2000). «Интерактивное многопроходное программируемое затенение» (PDF) . SIGRAPH 2000 : 425-432 . Получено 13 сентября 2024 г.
  71. ^ "NVIDIA DLSS 3". nvidia.com . NVIDIA Corporation . Получено 13 сентября 2024 г. .
  72. ^ Лэм, Честер (16 апреля 2021 г.). «Измерение задержки памяти графического процессора». chipsandcheese.com . Chips and Cheese . Получено 13 сентября 2024 г. .
  73. ^ ab Gong, Xun; Gong, Xiang; Yu, Leiming; Kaeli, David (март 2019 г.). "HAWS: ускорение выполнения волнового фронта на графическом процессоре с помощью выборочного внеочередного выполнения". ACM Trans. Archit. Code Optim . 16 (2). Association for Computing Machinery. doi :10.1145/3291050 . Получено 15 сентября 2024 г.
  74. Уорнок, Джон (20 мая 1968 г.), Алгоритм скрытой линии для представления полутоновых изображений (PDF) , Университет Юты, TR 4-5 , получено 19 сентября 2024 г.
  75. ^ Gouraud, H. (1971). «Непрерывное затенение криволинейных поверхностей» (PDF) . IEEE Transactions on Computers . 20 (6): 623–629. doi :10.1109/tc.1971.223313. S2CID  123827991. Архивировано из оригинала (PDF) 2010-07-02.
  76. ^ ab "История | Школа вычислительной техники". Архивировано из оригинала 2013-12-03 . Получено 2021-11-22 .
  77. ^ ab Phong, BT (1975). "Освещение для компьютерных изображений" (PDF) . Сообщения ACM . 18 (6): 311–316. CiteSeerX 10.1.1.330.4718 . doi :10.1145/360825.360839. S2CID  1439868. Архивировано из оригинала (PDF) 27.03.2012. 
  78. ^ Блинн, Дж. Ф .; Ньюэлл, М. Э. (1976). «Текстура и отражение в компьютерных изображениях». Сообщения ACM . 19 (10): 542–546. CiteSeerX 10.1.1.87.8903 . doi :10.1145/360349.360353. S2CID  408793. 
  79. ^ Блинн, Джеймс Ф. (20 июля 1977 г.). «Модели отражения света для компьютерно-синтезированных изображений». ACM SIGGRAPH Computer Graphics . 11 (2): 192–198. doi : 10.1145/965141.563893 – через dl.acm.org.
  80. ^ Crow, FC (1977). "Теневые алгоритмы для компьютерной графики" (PDF) . Компьютерная графика (Труды SIGGRAPH 1977) . Том 11. стр. 242–248. Архивировано из оригинала (PDF) 2012-01-13 . Получено 2011-07-15 .
  81. ^ Уильямс, Л. (1978). «Отбрасывание изогнутых теней на изогнутые поверхности». Компьютерная графика (Труды SIGGRAPH 1978) . Т. 12. С. 270–274. CiteSeerX 10.1.1.134.8225 . 
  82. ^ Блинн, Дж. Ф. (1978). Моделирование морщинистых поверхностей (PDF) . Компьютерная графика (Труды SIGGRAPH 1978). Том 12. С. 286–292. Архивировано (PDF) из оригинала 21.01.2012.
  83. ^ Фукс, Х.; Кедем, З.М.; Нейлор, Б.Ф. (1980). О генерации видимых поверхностей априорными древовидными структурами . Компьютерная графика (Труды SIGGRAPH 1980). Т. 14. С. 124–133. CiteSeerX 10.1.1.112.4406 . 
  84. ^ Уиттед, Т. (1980). «Улучшенная модель освещения для затененного дисплея». Сообщения ACM . 23 (6): 343–349. CiteSeerX 10.1.1.114.7629 . doi :10.1145/358876.358882. S2CID  9524504. 
  85. ^ Кук, Р. Л .; Торранс, К. Э. (1981). Модель отражения для компьютерной графики . Компьютерная графика (Труды SIGGRAPH 1981). Т. 15. С. 307–316. CiteSeerX 10.1.1.88.7796 . 
  86. ^ Уильямс, Л. (1983). Пирамидальная параметрика . Компьютерная графика (Труды SIGGRAPH 1983). Т. 17. С. 1–11. CiteSeerX 10.1.1.163.6298 . 
  87. ^ Glassner, AS (1984). «Разделение пространства для быстрой трассировки лучей». IEEE Computer Graphics & Applications . 4 (10): 15–22. doi :10.1109/mcg.1984.6429331. S2CID  16965964.
  88. ^ Портер, Т.; Дафф, Т. (1984). Компоновка цифровых изображений (PDF) . Компьютерная графика (Труды SIGGRAPH 1984). Том 18. С. 253–259. Архивировано (PDF) из оригинала 2015-02-16.
  89. ^ Кук, Р. Л .; Портер, Т.; Карпентер, Л. (1984). Распределенная трассировка лучей (PDF) . Компьютерная графика (Труды SIGGRAPH 1984). Т. 18. С. 137–145.[ постоянная мертвая ссылка ]
  90. ^ Горал, К.; Торранс, К.Е.; Гринберг, Д.П .; Баттайл, Б. (1984). Моделирование взаимодействия света между диффузными поверхностями . Компьютерная графика (Труды SIGGRAPH 1984). Т. 18. С. 213–222. CiteSeerX 10.1.1.112.356 . 
  91. ^ Коэн, М. Ф.; Гринберг , Д. П. (1985). Полукуб: решение по методу излучения для сложных сред (PDF) . Компьютерная графика (Труды SIGGRAPH 1985). Том 19. С. 31–40. doi :10.1145/325165.325171. Архивировано из оригинала (PDF) 24.04.2014 . Получено 25.03.2020 .
  92. ^ Арво, Дж. (1986). Обратная трассировка лучей . SIGGRAPH 1986 Разработки в области трассировки лучей. Заметки к курсу. CiteSeerX 10.1.1.31.581 . 
  93. ^ Wu, Xiaolin (июль 1991). "Эффективный метод сглаживания". ACM SIGGRAPH Computer Graphics . 25 (4): 143–152. doi :10.1145/127719.122734. ISBN 978-0-89791-436-9.
  94. ^ Wu, Xiaolin (1991). "Быстрая генерация сглаженных кругов". В James Arvo (ред.). Graphics Gems II . Сан-Франциско: Morgan Kaufmann. стр. 446–450. ISBN 978-0-12-064480-3.
  95. ^ Ханрахан, П.; Зальцман , Д.; Опперле, Л. (1991). Быстрый иерархический алгоритм излучательности . Компьютерная графика (Труды SIGGRAPH 1991). Т. 25. С. 197–206. CiteSeerX 10.1.1.93.5694 . 
  96. ^ М. Орен и С. К. Наяр, «Обобщение модели отражения Ламберта. Архивировано 15 февраля 2010 г. в Wayback Machine ». SIGGRAPH. стр. 239–246, июль 1994 г.
  97. ^ Tumblin, J.; Rushmeier, HE (1993). «Воспроизведение тона для реалистичных изображений, созданных компьютером» (PDF) . IEEE Computer Graphics & Applications . 13 (6): 42–48. doi :10.1109/38.252554. S2CID  6459836. Архивировано (PDF) из оригинала 2011-12-08.
  98. ^ Ханрахан, П.; Крюгер, В. (1993). Отражение от слоистых поверхностей из-за подповерхностного рассеяния . Компьютерная графика (Труды SIGGRAPH 1993). Т. 27. С. 165–174. CiteSeerX 10.1.1.57.9761 . 
  99. ^ Лафортюн, Эрик; Виллемс, Ив (декабрь 1993 г.). «Двунаправленная трассировка пути» (PDF) . Труды Третьей международной конференции по вычислительной графике и методам визуализации (CompuGraphics) . стр. 145–153. Архивировано (PDF) из оригинала 21 мая 2022 г. . Получено 2 сентября 2024 г. .
  100. ^ Миллер, Гэвин (24 июля 1994 г.). "Эффективные алгоритмы для локального и глобального затенения доступности". Труды 21-й ежегодной конференции по компьютерной графике и интерактивным технологиям - SIGGRAPH '94 . ACM. стр. 319–326. doi :10.1145/192161.192244. ISBN 978-0897916677. S2CID  15271113. Архивировано из оригинала 22 ноября 2021 г. Получено 7 мая 2018 г. – через dl.acm.org.
  101. ^ Jensen, HW ; Christensen, NJ (1995). «Фотонные карты в двунаправленной трассировке лучей Монте-Карло сложных объектов». Компьютеры и графика . 19 (2): 215–224. CiteSeerX 10.1.1.97.2724 . doi :10.1016/0097-8493(94)00145-o. 
  102. ^ Veach, Eric; Guibas, Leonidas J. (15 сентября 1995 г.). «Оптимальное комбинирование методов выборки для рендеринга Монте-Карло». SIGGRAPH95: 22-я Международная конференция ACM по компьютерной графике и интерактивным технологиям . стр. 419–428. doi :10.1145/218380.218498. Архивировано из оригинала 26 июля 2024 г. Получено 2 сентября 2024 г.
  103. ^ Veach, E. ; Guibas, L. (1997). Метрополисный легкий транспорт . Компьютерная графика (Труды SIGGRAPH 1997). Том 16. С. 65–76. CiteSeerX 10.1.1.88.944 . 
  104. ^ Veach, E. ; Guibas, L. (1997). Метрополисный легкий транспорт . Компьютерная графика (Труды SIGGRAPH 1997). Том 16. С. 65–76. CiteSeerX 10.1.1.88.944 . 
  105. ^ Келлер, А. (1997). Мгновенная радиационность . Компьютерная графика (Труды SIGGRAPH 1997). Т. 24. С. 49–56. CiteSeerX 10.1.1.15.240 . 
  106. ^ Слоан, П.; Каутц, Дж.; Снайдер, Дж. (2002). Предварительно вычисленная передача излучения для рендеринга в реальном времени в динамических низкочастотных средах освещения (PDF) . Компьютерная графика (Труды SIGGRAPH 2002). Том 29. С. 527–536. Архивировано из оригинала (PDF) 24.07.2011.
  107. ^ Loper, Matthew M; Black, Michael J (6 сентября 2014 г.). "OpenDR: An approx Differentiable renderer" (PDF) . Computer Vision - ECCV 2014 . Vol. 8695. Цюрих, Швейцария: Springer International Publishing. pp. 154–169. doi :10.1007/978-3-319-10584-0_11. Архивировано (PDF) из оригинала 24 июня 2024 г. . Получено 2 сентября 2024 г. .
  108. ^ Мюллер, Томас; Гросс, Маркус; Новак, Ян (июнь 2017 г.). «Практическое руководство по эффективному моделированию переноса света». Computer Graphics Forum (Proceedings of EGSR) . 36 (4). The Eurographs Association & John Wiley & Sons, Ltd.: 91–100. doi :10.1111/cgf.13227 . Получено 4 сентября 2024 г.
  109. ^ Биттерли, Бенедикт; Вайман, Крис; Фарр, Мэтт; Ширли, Питер; Лефон, Аарон; Ярош, Войцех (июль 2020 г.). «Пространственно-временная передискретизация резервуара для трассировки лучей в реальном времени с динамическим прямым освещением». ACM Transactions on Graphics (Труды SIGGRAPH) . 39 (4). doi :10.1145/3386569.3392481. Архивировано из оригинала 1 марта 2024 г. . Получено 2 сентября 2024 г. .

Дальнейшее чтение

Внешние ссылки