Remove ads
в компьютерной графике — процесс получения изображения по модели Из Википедии, свободной энциклопедии
Ре́ндеринг или отрисо́вка (англ. rendering — «визуализация») — термин в компьютерной графике, обозначающий процесс получения изображения по модели с помощью компьютерной программы.
Здесь модель — это описание любых объектов или явлений на строго определённом языке или в виде структуры данных. Такое описание может содержать геометрические данные, положение точки наблюдателя, информацию об освещении, степени наличия какого-то вещества, напряжённость физического поля и пр.
Примером визуализации могут служить радарные космические снимки, представляющие в виде изображения данные, полученные посредством радиолокационного сканирования поверхности космического тела, в диапазоне электромагнитных волн, невидимых человеческим глазом.
Часто в компьютерной графике (художественной и технической) под рендерингом (3D-рендерингом) понимают создание плоской картинки — цифрового растрового изображения — по разработанной 3D-сцене. Синонимом в данном контексте является визуализация.
Визуализация — один из наиболее важных разделов в компьютерной графике, и на практике он тесным образом связан с остальными. Обычно программные пакеты трёхмерного моделирования и анимации включают в себя также и функцию рендеринга. Существуют отдельные программные продукты, выполняющие рендеринг.
В зависимости от цели, различают рендеринг, как достаточно медленный процесс визуализации, применяющийся в основном при создании видео, например в Vegas Pro, и рендеринг в режиме реального времени, например, в компьютерных играх. Последний часто использует 3D-ускорители.
Компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).
Рендеринг изображения можно охарактеризовать с точки зрения ряда видимых особенностей. Исследования и разработки в рендеринге в значительной степени инициируются в целях поиска способов их эффективного применения. Некоторые относятся непосредственно к конкретным алгоритмам и методам, в то время как другие дополняют вместе друг друга.
На текущий момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения.
Трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерно много времени, если не применяется аппроксимация (семплирование).
Вследствие этого, было разработано четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:
Передовое программное обеспечение обычно совмещает в себе несколько техник, чтобы получить достаточно качественное и фотореалистичное изображение за приемлемые затраты вычислительных ресурсов.
Высокоуровневое представление изображения обязательно содержит элементы, отличные от пикселей. Эти элементы называются примитивами. Например, на схематическом рисунке отрезки и кривые могут быть примитивами. В графическом пользовательском интерфейсе окна и кнопки могут быть примитивами. При рендеринге 3D-моделей треугольники и многоугольники, расположенные в пространстве могут быть примитивами.
В случаях если попиксельный рендеринг нецелесообразен или слишком медлен для какой-либо задачи, тогда может оказаться полезнее подход «примитив-за-примитивом». В этом случае каждый контур просматривает каждый из примитивов, и в итоге определяется на какие пиксели изображения он влияет, и соответственно модифицируются эти пиксели. Это называется растеризацией, и этот метод рендеринга используется всеми современными видеокартами.
Растеризация часто быстрее, чем пиксельный рендеринг. Во-первых, большие области изображения могут быть пустыми из-за примитивов; растеризация будет игнорировать эти области, но пиксельный рендеринг должен проходить через них. Во-вторых, растеризация может улучшить когерентность кэша и уменьшить избыточную работу, используя тот факт, что пиксели, занятые одним примитивом, имеют тенденцию быть смежными в изображении. По этим причинам растеризация обычно является подходящим выбором, когда требуется интерактивный рендеринг; однако подход пиксельного рендеринга часто позволяет получать изображения более высокого качества и является более универсальным, поскольку он не зависит от такого количества предположений об изображении, как растеризация.
Старая форма растеризации характеризуется тем, что примитив отображается как один цвет. В качестве альтернативы растеризация может быть выполнена более сложным способом, сначала визуализируя вершины грани, а затем визуализируя пиксели этой грани как смешивание цветов вершин. Эта версия растеризации обогнала по использованию старый метод, поскольку она позволяет графике течь без сложных текстур (растеризованное изображение имеет тенденцию к эффекту, который характеризуется тем, что если мы имеем дело с несложными текстурами, то грани не являются гладкими, потому что нет постепенного изменения цвета от одного примитива к другому). Этот метод растеризации использует более сложные функции затенения и все же обеспечивает лучшую производительность, поскольку более простые текстуры, хранящиеся в памяти, занимают меньше места. Иногда дизайнеры используют один метод растеризации на некоторых гранях, а другой метод — на других, основываясь на угле, под которым эта грань встречается с другими соединёнными гранями, что увеличивает скорость и не влияет на общий эффект.
При рейкастинге геометрия, которая была смоделирована, анализируется попиксельно, построчно, с точки зрения наблюдателя наружу, как если бы лучи отбрасывались из точки наблюдения. В месте, где объект пересекается, значение цвета может быть оценено с использованием нескольких методов. В самом простом случае значение цвета объекта в точке пересечения становится значением этого пикселя. Цвет можно определить по текстурной карте. Более сложный метод заключается в изменении значения цвета с помощью коэффициента освещения, но без расчета отношения к моделируемому источнику света. Чтобы уменьшить неточности, количество разнонаправленных лучей может быть усреднено.
Приведение лучей включает в себя вычисление «направления обзора» (из положения камеры) и постепенное следование вдоль этого «приведения лучей» через «твердые трехмерные объекты» в сцене, в то же время накапливая результирующее значение из каждой точки в трехмерном пространстве. Это связано и похоже на «трассировку лучей», за исключением того, что передача обычно не «отражается» от поверхностей (где «трассировка лучей» указывает на то, что она отслеживает путь света, включая отскоки). Рейкастинг подразумевает, что луч света следует по прямому пути (который может включать в себя прохождение через полупрозрачные объекты). Рейкастинг — это вектор, который может исходить от камеры или от конечной точки сцены («от фронта назад» или «назад к фронту»). Иногда конечное значение освещения является производным от «передаточной функции», а иногда используется напрямую.
Может быть дополнительно использовано грубое моделирование оптических свойств: сделан простой расчет луча от объекта к точке наблюдения. Другой способ вычисления производится для угла падения световых лучей от источника (ов) света, далее из них, а также из указанных интенсивностей источников света, вычисляется значение пикселя. Также используется освещение в другом способе моделирования, которое воспроизводит алгоритм радиации, или комбинацию этих двух.
Реализация механизма рендеринга всегда основывается на физической модели. Производимые вычисления относятся к той или иной физической или абстрактной модели. Основные идеи просты для понимания, но сложны для применения. Как правило, конечное элегантное решение или алгоритм более сложны и содержат в себе комбинацию разных техник.
Ключом к теоретическому обоснованию моделей рендеринга служит уравнение рендеринга. Оно является наиболее полным формальным описанием части рендеринга, не относящейся к восприятию конечного изображения. Все модели представляют собой какое-то приближённое решение этого уравнения.
Неформальное толкование таково: Количество светового излучения (Lo), исходящего из определённой точки в определённом направлении есть собственное излучение и отражённое излучение. Отражённое излучение есть сумма по всем направлениям приходящего излучения (Li), умноженного на коэффициент отражения из данного угла. Объединяя в одном уравнении приходящий свет с исходящим в одной точке, это уравнение составляет описание всего светового потока в заданной системе.
RenderMan | mental ray | YafaRay | V-Ray | finalRender | Brazil R/S | Turtle | Maxwell Render | Fryrender | Indigo Renderer | LuxRender | Kerkythea | Gelato (разработка прекращена) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
совместим с 3ds Max | Да, через MaxMan | встроен | Нет | Да | Да | Да | Нет | Да | Да | Да | Да | Да | Да |
совместим с Maya | Да, через RenderMan Artist Tools | встроен | Нет | Да | Да | Нет | Да | Да | Да | Да | Да | Да | |
совместим с Softimage | Да, через XSIMan | встроен | Нет | Да | Нет | Нет | Нет | Да | Да | Да | Да | Нет | |
совместим с Houdini | Да | Да | Нет | Нет | Нет | Нет | Нет | Нет | Да | Да | Нет | Нет | |
совместим с LightWave | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да | Да | Нет | Нет | Нет | |
совместим с Blender | Да | Нет | Да | Да | Нет | Нет | Нет | Нет | Нет | Да | Да | Да | Нет |
совместим с SketchUp | Нет | Нет | Нет | Да | Нет | Нет | Нет | Да | Да | Да | Да | Да | Нет |
совместим с Cinema 4D | Да (начиная с 11-й версии) | Да | Нет | Да | Да | Нет | Нет | Да | Да | Да | Да | Нет, заморожен | Нет |
платформа | Microsoft Windows, Linux, Mac OS X | Microsoft Windows, Mac OS X | Microsoft Windows, Linux, Mac OS X | ||||||||||
физическая корректность модели | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да | Да | Да | Да | Нет | |
scanline | Да | Да | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да |
raytrace | очень медленный | Да | Да | Да | Да | Да | Да | Нет | Нет | Нет | Нет | Да | Да |
алгоритмы Global Illumination или свои алгоритмы | Photon, Final Gather (Quasi-Montecarlo) | Photon map, pathtracing, Bidirectional, SPPM | Light Cache, Photon Map, Irradiance Map, Brute Force (Quasi-Montecarlo) | Hyper Global Illumination, Adaptive Quasi-Montecarlo, Image, Quasi Monte-Carlo | Quasi-Montecarlo, PhotonMapping | Photon Map, Final Gather | Metropolis Light Transport | Metropolis Light Transport | Metropolis Light Transport | Metropolis Light Transport, Bidirectional Path Tracing | |||
Camera — Depth of Field (DOF) | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
Camera — Motion Blur (vector pass) | очень быстрый | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | быстрый | |
Displacement | быстрый | Да | Да | медленный, 2d и 3d | медленный | Нет | быстрый | Да | Да | Да | Да | быстрый | |
Area Light | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | ||
Glossy Reflect/Refract | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
SubSurface Scattering (SSS) | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
Standalone | Да | Да | Нет | 2005 года (сырая) | Нет | Нет | Нет | Да | Да | Да | Да | Да | |
текущая версия | 13.5,2,2 | 3.10 | 0.1.1 (0.1.2 Beta 5a) | 3.6 (3ds Max) 2.0 (Maya) |
Stage-2 | 2 | 4.01 | 1.61 | 1.91 | 1.0.9 | v1.5 | Kerkythea 2008 Echo | 2.2 |
год выпуска | 1987 | 1986 | 2005 | 2000 | 2002 | 2000 | 2003 | 2007 (?) | 2006 (?) | 2006 | 2015 | 2008 | 2003 |
библиотека материалов | Нет | 33 My mentalRay | в разработке | 100+ vray-materials | 30 оф. сайт | 113 оф. сайт (недоступная ссылка) | Нет | 3200+ оф. сайт | 110 оф. сайт | 80 оф. сайт | 61 оф. сайт | Нет | |
основан на технологии | liquidlight | Metropolis Light Transport | |||||||||||
normal mapping | Да | Да | Да | ||||||||||
IBL/HDRI Lighting | Да | Да | Да | Да | |||||||||
Physical sky/sun | Да | Да | Да | Да | Да | ||||||||
официальный сайт | renderman.pixar.com | YafaRay.org Архивная копия от 27 декабря 2020 на Wayback Machine | vray.com chaosgroup.com |
MaxwellRender.com | Fryrender.com | IndigoRenderer.com | LuxRender.net | kerkythea.net | |||||
страна производитель | США | Германия | Корея | Болгария | Германия | США | Швеция | Испания | Испания | США | |||
стоимость $ | 3500 | 195 | бесплатное, LGPL 2.1 | 800—1385 (в зависимости от 3D-пакета) |
1000 | 735 | 1500 | 995 | 1200 | 295€ | бесплатное, GNU | бесплатное | бесплатное |
основное преимущество | бесплатное | Baking высокая скорость (не очень высокое качество) | Группы источников освещения, влияние которых на изображение можно регулировать непосредственно во время рендеринга, различные эффекты постобработки и имитации различных фотоплёнок, применяемые «на лету»;
Свободное ПО с открытым исходным кодом |
бесплатное | |||||||||
компания производитель | Pixar | mental images (c 2008 NVIDIA) | YafaRay | Chaos Group | Cebas | SplutterFish | Illuminate Labs | Next Limit | Feversoft | NVIDIA |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.