Рендеринг что это такое


Рендеринг — Википедия

Фотореалистичное изображение, созданное POV-Ray 3.6. Модели кувшина, стаканов и пепельницы созданы при помощи Rhinoceros 3D, модель игральной кости — в cinema 4D.

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

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

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

Часто в компьютерной графике (художественной и технической) под рендерингом (3D-рендерингом) понимают создание плоской картинки — цифрового растрового изображения — по разработанной 3D-сцене. Синонимом в данном контексте является визуализация.

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

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

Компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).

Основные термины в практике рендеринга[править | править код]

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

  • Шэйдинг (англ. shading) — зависимость цвета и яркости поверхности от освещения.
  • Текстурное наложение — метод нанесения деталей на поверхности.
  • Бамп-мэппинг (англ. bump-mapping) — метод моделирования мелкой неровности на поверхностях.
  • Фоггинг (англ. fogging) — насколько тускнеет свет при прохождении через непрозрачную атмосферу или воздух.
  • Тени — эффект затенения света.
  • Мягкие тени — различного уровня темнота, вызванная частично скрытыми источниками света.
  • Отражение — зеркальное или глянцевое отражение.
  • Прозрачность — резкое прохождение света через твердые объекты.
  • Полупрозрачность — очень рассеянная передача света через твердые объекты.
  • Преломление — изгиб света, связанный с прозрачностью.
  • Дифракция — изгиб, распространение и интерференция света, проходящего мимо объекта или апертуры, которая прерывает луч.
  • Непрямое освещение — множество поверхностей, освещаемые светом, отраженным от других поверхностей, а не непосредственно от источника света (также известного как глобальное освещение).
  • Каустика (форма непрямого освещения) — отражение света от блестящего объекта или фокусировка света через прозрачный объект для создания ярких бликов на другом объекте.
  • Глубина резкости — объекты выглядят размытыми или не в фокусе, когда находятся слишком далеко перед или позади фокуса.
  • Размытие в движении — объекты выглядят размытыми из-за высокоскоростного движения или движения камеры.
  • Не фотореалистичный рендеринг — рендеринг сцен в художественном стиле, предназначенном для рисунка или графического изображения.

На текущий момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения.

Трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерно много времени, если не применяется аппроксимация (семплирование).

Вследствие этого, было разработано четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:

  • Растеризация (англ. rasterization) совместно с методом сканирования строк (Scanline rendering (англ.)). Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя.
  • Ray casting (рейкастинг) (англ. ray casting). Сцена рассматривается, как наблюдаемая из определённой точки. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. При этом лучи прекращают своё распространение (в отличие от метода обратного трассирования), когда достигают любого объекта сцены либо её фона. Возможно использование каких-либо очень простых способов добавления оптических эффектов. Эффект перспективы получается естественным образом в случае, когда бросаемые лучи запускаются под углом, зависящим от положения пикселя на экране и максимального угла обзора камеры.
  • Трассировка лучей (англ. ray tracing) похожа на метод бросания лучей. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три луча-компонента, каждый из которых вносит свой вклад в цвет пикселя на двумерном экране: отражённый, теневой и преломлённый. Количество таких компонентов определяет глубину трассировки и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, однако из-за большой ресурсоёмкости процесс визуализации занимает значительное время.
  • Трассировка пути (англ. path tracing) использует похожий принцип трассировки распространения лучей, однако этот метод является наиболее приближённым к физическим законам распространения света. Также является самым ресурсоёмким.

Передовое программное обеспечение обычно совмещает в себе несколько техник, чтобы получить достаточно качественное и фотореалистичное изображение за приемлемые затраты вычислительных ресурсов.

Рендеринг и растеризация[править | править код]

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

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

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

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

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

Рейкастинг[править | править код]

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

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

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

Реализация механизма рендеринга всегда основывается на физической модели. Производимые вычисления относятся к той или иной физической или абстрактной модели. Основные идеи просты для понимания, но сложны для применения. Как правило, конечное элегантное решение или алгоритм более сложны и содержат в себе комбинацию разных техник.

Основное уравнение[править | править код]

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

Lo(x,w→)=Le(x,w→)+∫Ωfr(x,w→′,w→)Li(x,w→′)(w→′⋅n→)dw→′{\displaystyle L_{o}(x,{\vec {w}})=L_{e}(x,{\vec {w}})+\int \limits _{\Omega }f_{r}(x,{\vec {w}}',{\vec {w}})L_{i}(x,{\vec {w}}')({\vec {w}}'\cdot {\vec {n}})d{\vec {w}}'}

Неформальное толкование таково: Количество светового излучения (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)
1.6 (SketchUp)
1.5 (Rhino)

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 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
  • 1968 Ray casting (Appel, A. (1968). Some techniques for shading machine renderings of solids. Proceedings of the Spring Joint Computer Conference 32, 37—49.)
  • 1970 Scan-line algorithm (Bouknight, W. J. (1970). A procedure for generation of three-dimensional half-tone computer graphics presentations. Communications of the ACM)
  • 1971 Gouraud shading (Gouraud, H. (1971). Computer display of curved surfaces. IEEE Transactions on Computers 20 (6), 623—629.)
  • 1974 Texture mapping (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis, University of Utah.)
  • 1974 Z-buffer (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis)
  • 1975 Phong shading (Phong, B-T. (1975). Illumination for computer generated pictures. Communications of the ACM 18 (6), 311—316.)
  • 1976 Environment mapping (Blinn, J.F., Newell, M.E. (1976). Texture and reflection in computer generated images. Communications of the ACM 19, 542—546.)
  • 1977 Shadow volumes (Crow, F.C. (1977). Shadow algorithms for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1977) 11 (2), 242—248.)
  • 1978 Shadow buffer (Williams, L. (1978). Casting curved shadows on curved surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 270—274.)
  • 1978 Bump mapping (Blinn, J.F. (1978). Simulation of wrinkled surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 286—292.)
  • 1980 BSP trees (Fuchs, H. Kedem, Z.M. Naylor, B.F. (1980). On visible surface generation by a priori tree structures. Computer Graphics (Proceedings of SIGGRAPH 1980) 14 (3), 124—133.)
  • 1980 Ray tracing (Whitted, T. (1980). An improved illumination model for shaded display. Communications of the ACM 23 (6), 343—349.)
  • 1981 Cook shader (Cook, R.L. Torrance, K.E. (1981). A reflectance model for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1981) 15 (3), 307—316.)
  • 1983 Mipmaps (Williams, L. (1983). Pyramidal parametrics. Computer Graphics (Proceedings of SIGGRAPH 1983) 17 (3), 1—11.)
  • 1984 Octree ray tracing (Glassner, A.S. (1984). Space subdivision for fast ray tracing. IEEE Computer Graphics & Applications 4 (10), 15—22.)
  • 1984 Alpha compositing (Porter, T. Duff, T. (1984). Compositing digital images. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 253—259.)
  • 1984 Distributed ray tracing (Cook, R.L. Porter, T. Carpenter, L. (1984). Distributed ray tracing. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 137—145.)
  • 1984 Radiosity (Goral, C. Torrance, K.E. Greenberg, D.P. Battaile, B. (1984). Modelling the interaction of light between diffuse surfaces. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 213—222.)
  • 1985 Hemi-cube radiosity (Cohen, M.F. Greenberg, D.P. (1985). The hemi-cube: a radiosity solution for complex environments. Computer Graphics (Proceedings of SIGGRAPH 1985) 19 (3), 31—40.)
  • 1986 Light source tracing (Arvo, J. (1986). Backward ray tracing. SIGGRAPH 1986 Developments in Ray Tracing course notes)
  • 1986 Rendering equation (Kajiya, J.T. (1986). The rendering equation. Computer Graphics (Proceedings of SIGGRAPH 1986) 20 (4), 143—150.)
  • 1987 Reyes algorithm (Cook, R.L. Carpenter, L. Catmull, E. (1987). The reyes image rendering architecture. Computer Graphics (Proceedings of SIGGRAPH 1987) 21 (4), 95—102.)
  • 1991 Hierarchical radiosity (Hanrahan, P. Salzman, D. Aupperle, L. (1991). A rapid hierarchical radiosity algorithm. Computer Graphics (Proceedings of SIGGRAPH 1991) 25 (4), 197—206.)
  • 1993 Tone mapping (Tumblin, J. Rushmeier, H.E. (1993). Tone reproduction for realistic computer generated images. IEEE Computer Graphics & Applications 13 (6), 42—48.)
  • 1993 Subsurface scattering (Hanrahan, P. Krueger, W. (1993). Reflection from layered surfaces due to subsurface scattering. Computer Graphics (Proceedings of SIGGRAPH 1993) 27 (), 165—174.)
  • 1995 Photon mapping (Jensen, H.J. Christensen, N.J. (1995). Photon maps in bidirectional monte carlo ray tracing of complex objects. Computers & Graphics 19 (2), 215—224.)
  • 1997 Metropolis light transport (Veach, E. Guibas, L. (1997). Metropolis light transport. Computer Graphics (Proceedings of SIGGRAPH 1997) 16 65—76.)

ru.wikipedia.org

Что такое РЕНДЕР (РЕНДЕРИНГ) - простой ответ что это значит

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

 

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

 

 

 

Слово Рендер (Рендеринг) — это англицизм, который зачастую переводится на русский язык словом “Визуализация”.

 

Что такое Рендеринг в 3D?

 

Чаще всего, когда мы говорим о рендере, то имеем в виду рендеринг в 3D графике. Сразу стоит отметить, что на самом деле в 3D рендере нету трех измерений как таковых, которые мы зачастую можем увидеть в кинотеатре надев специальные очки. Приставка “3D” в название скорее говорит нам о способе создание рендера, который и использует 3-х мерные объекты, созданные в компьютерных программах для 3D моделирования. Проще говоря, в итоге мы все равно получаем 2D изображение или их последовательность (видео) которые создавались (рендерелись) на основе 3-х мерной модели или сцены.

 

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

Построение изображения.

 

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

 

Основные типы рендеринга:

 

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

 

Что такое Рендеринг в реальном времени?

 

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

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

 

 

Большую роль в создание плавного рендера в играх и интерактивных сценах играет процесс оптимизации. Для того, чтоб добиться желаемой скорости рендера, разработчики применяют разные уловки для снижения нагрузки на рендер движок, пытаясь снизить вынужденное количество просчетов. Сюда входит снижение качества 3д моделей и текстур, а также запись некоторой световой и рельефной информации в заранее запеченные текстурные карты. Также стоит отметить, что основная часть нагрузки при просчете рендера в реальном времени ложиться на специализированное графическое оборудование (видеокарту -GPU), что позволяет снизить нагрузку с центрального процессора (ЦП) и освободить его вычислительные мощности для других задач.

 

Что такое Предварительный рендер?

 

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

 

В отличие от Рендера в реальном времени, где основная нагрузка приходилась на графические карты(GPU) В предварительном рендере нагрузка ложится на центральный процессор(ЦП) а скорость рендера зависит от количества ядер, многопоточности и производительности процессора.

 

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

 

 

Программы для рендеринга.

 

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

 

Как правило, рендер движки являются встроенными в крупные 3D программы для работы с графикой и имеют огромный потенциал. Среди наиболее популярных 3D программ (пакетов) есть такой софт как:

 

  • 3ds Max;
  • Maya;
  • Blender;
  • Cinema 4d и др.

 

Многие из этих 3D пакетов имеют уже идущие в комплекте рендер движки.  К примеру, рендер-движок Mental Ray присутствует в пакете 3Ds Max. Также, практически любой популярный рендер-движок, можно подключить к большинству известных 3d пакетов. Среди популярных рендер движков есть такие как:

 

  • V-ray;
  • Mental ray;
  • Corona renderer и др.

 

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

 

 

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

 

Методы визуализации.

 

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

 

1. Scanline (сканлайн).

 

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

 

Алгоритм работы:

 

Вместо рендеринга «пикселя по пикселю», алгоритм функционирования «scanline» рендера заключается в том, что он определяет видимую поверхность в 3D графике, и работая по принципу «ряд за рядом», сперва сортирует нужные для рендера полигоны по высшей Y координате, что принадлежит данному полигону, после чего, каждый ряд изображения просчитывается за счет пересечения ряда с полигоном, который является ближайшим к камере. Полигоны, которые больше не являются видимыми, удаляются при переходе одного ряда к другому.

 

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

 

 

2. Raytrace (рейтрейс).

 

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

 

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

 

Алгоритм работы:

 

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

Метод Raycasting.

 

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

 

Нередко бывает, что «метод трассировки лучей» (raytrace) путают с методом «бросания лучей» (raycasting). Но на самом деле, «raycasting» (метод бросания луча) фактически является упрощенным «raytrace» методом, в котором отсутствует дальнейшая обработка отбившихся или заломленных лучей, а просчитывается только первая поверхность на пути луча.

 

 

3. Radiosity.

 

Вместо «метода трассировки лучей», в данном методе просчет работает независимо от камеры и является объектно-ориентированным в отличие от метода «пиксель по пикселю». Основная функция “radiosity” заключается в том, чтобы более точно имитировать цвет поверхности путем учета непрямого освещения (отскок рассеянного света).

 

Преимуществами «radiosity» являются мягкие градуированные тени и цветовые отражения на объекте, идущие от соседних объектов с ярким окрасом.

Достаточно популярна практика использования метода Radiosity и Raytrace вместе для достижения максимально впечатляющих и фотореалистичных рендеров.

 

 

Что такое Рендеринг видео?

 

Иногда, выражение «рендерить» используют не только в работе с компьютерной 3D графикой, но и при работе с видеофайлами. Процесс рендеринга видео начинается тогда, когда пользователь видеоредактора закончил работу над видеофайлом, выставил все нужные ему параметры, звуковые дорожки и визуальные эффекты. По сути, все что осталось, это соединить все проделанное в один видеофайл. Этот процесс можно сравнить с работой программиста, когда он написал код, после чего все что осталось, это скомпилировать весь код в работающую программу.

 

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

 

 

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

Получи плюсик к карме - поделись добром с друзьми:

VK

Facebook

Twitter

chto-takoe.net

Что такое рендеринг? И что такое рендер? Словарь разработчиков компьютерных игр!

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

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

Что такое рендеринг? (для программистов)

Итак, Википедия дает такое определение: Ре́ндеринг (англ. rendering — «визуализация») — термин в компьютерной графике, обозначающий процесс получения изображения по модели с помощью компьютерной программы.

Довольно неплохое определение, продолжим с ним. Рендеринг — это визуализация. В компьютерной графике и 3д-художники и программисты под рендерингом понимают создание плоской картинки — цифрового растрового изображения из 3д сцены.
То есть, неформальный ответ на наш вопрос «Что такое рендеринг?» — это получение 2д картинки (на экране или в файле не важно). А компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).

Рендер

В свою очередь словом «рендер» называют чаще всего результат рендеринга. Но иногда и процесс называют так же (просто в английском глагол — render перенесся в русский, он короче и удобнее). Вы, наверняка, встречали различные картинки в интернете, с подписью «Угадай рендер или фото?». Имеется ввиду это 3D-визуализация или реальная фотография (уж настолько компьютерная графика продвинулась, что порой и не разберешься).

Виды рендеринга

В зависимости от возможности сделать вычисления параллельными существуют:

  • многопоточный рендеринг — вычисления выполняются параллельно в несколько потоков, на нескольких ядрах процессора,
  • однопоточный рендеринг — в этом случае вычисления выполняются в одном потоке синхронно.

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

В чем суть методов? Как работает растеризация и трасировка лучей? Начнем с растеризация.

Растеризация полигональной модели

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

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

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

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

Сложная модель персонажа состоит из мельчайших треугольников и растеризатор генерирует из неё вполне достоверную картинку. Почему тогда заморачиваться с трассировкой лучей? Почему не растеризовать и все? А смысл вот в чем, растеризатор знает только своё рутинное дело, треугольники — в пиксели. Он ничего не знает об объектах рядом с треугольником.

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

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

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

Трасировка лучей (англ. ray tracing)

Помните о корпускулярно волновом дуализме? Напомню в чем суть: свет ведёт себя и как волны и как поток частиц — фотонов. Так вот трассировка (от англ «trace» прослеживать путь), это симуляция лучей света, грубо говоря. Но трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время.

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

Что с направлением? Все просто, мы будем трассировать лучи в соответствии с точкой наблюдения (то как наша виртуальная камера направлена). Луч встретится в какой-то точке с объектом сцены (если не встретится, значит там темный пиксель или пиксель неба из скайбокса, например).

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

Рендеринг для художников

Но рендеринг это не только программная визуализация! Хитрые художники тоже используют его. Так что такое рендеринг с точки зрения художника? Примерно то же самое, что и для программистов, только концепт-художники выполняют его сами. Руками. Точно так же как рендерер в видео-игре или V-ray в Maya художники учитывают освещение, подповерхностное рассеивание, туман и др. факторы, влияющие на конечный цвет поверхности.

К примеру картинка выше, поэтапно прорабатывается таким образом: Грубый скетч — Лайн — Цвет — Объем — Рендер материалов.

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

Растеризация векторной графики

Суть примерно такая же, есть данные 2д кривых, это те контуры, которыми заданы объекты. У нас есть конечное растровое изображение и растеризатор переводит данные кривых в пиксели. После этого у нас нет возможности масштабировать картинку без потери качества.

Читайте дальше

Статьи из рубрики «Ликбез для начинающих разработчиков игр«, скорее всего окажутся очень для Вас полезными, позвольте-с отрекомендовать:

Послесловие

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

coremission.net

Что такое 3D рендер или рендеринг

17 ноября 2019 г.

Что такое рендер?

Дословный перевод с английского языка слова рендеринг — визуализация или отрисовка. В нашем случае речь идет преобразовании трехмерной сцены в статическую картинку, или секвенцию кадров (секвенция кадров, это тип сохранения множества последовательных кадров если говорить о рендеринге анимации). В трехмерных редакторах (типа 3ds max, cinema4d, sketch up и др.) визуализация сцен происходит с помощью математических просчетов.

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

Системы рендеринга которые используются 3д редакторами для просчета (отрисовки) визуализации бывают встроенные в программу или внешние подключаемые (устанавливаться отдельно). Чаще внешние системы рендеринга имеют лучше качество визуализации чем встроенные, потому что они разрабатываться не зависимо от 3Д редактора, и команда разработчиков работает только над усовершенствованием своего продукта не отвлекаясь на работу с 3д редактором. У команд разрабатывающих внешние редакторы больше времени и возможностей на то, чтобы сделать свой продукт лучшим на рынке. Но из-за этого чаще всего, в отличие от встроенных рендер систем за них придется заплатить дополнительно.

Сфера применения

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

Системы рендеринга

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

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

Рендеринг в архитектурной 3D визуализации

На сегодняшний день самыми популярными и качественными системами для архитектурной визуализации являются Vray и Corona Renderer. Обе системы принадлежат одному разработчику Chaos Group (Болгария).

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

Основные достоинства V-Ray:

1. Поддерживает сетевой рендер несколькими компьютерами.

2. Очень широкий спектр настроек для разных задач связанных с трехмерной графикой.

3. Огромный набор материалов.

4. Поддерживает большой набор пассов для композинга картинки или видео.

Corona Renderer - это внешний современный высокопроизводительный фотореалистичный рендер, доступный для Autodesk 3ds Max, MAXON Cinema 4D. Разработка Corona Renderer началась еще в 2009 году как сольный студенческий проект Ондржея Карлика в Чешском техническом университете в Праге. С тех пор Corona превратилась в коммерческий проект, работающий полный рабочий день, после того как Ондржей основал компанию вместе с бывшим художником компьютерной графики Адамом Хотови и Ярославом Крживанеком, доцентом и исследователем в Карловом университете в Праге. В августе 2017 года компания стала частью Chaos Group, что позволило дальнейшее расширение и рост. Несмотря на свой молодой возраст, Corona Renderer стал очень конкурентноспособным рендером, способным создавать высококачественные результаты.

Главное достоинство Corona Renderer это очень реалистичная визуализация при простых настройках системы. Она отлично подойдет для новичков, перед которыми стоят простые задачи.

Скорость рендера

Рендер системы при работе как все остальные программы установленные на компьютер требует для просчета изображения определенные ресурсы вашего ПК. В основном требуется мощность процессора и количество оперативной памяти. Такие рендер системы называются CPU. Есть еще GPU, это рендер системы просчитывающие изображения с помощью видеокарты. Например Vray имеет возможность рендерить и CPU и GPU.

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

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

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

История и основы вычислительных процессов рендеринга

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

Таким образом, появилось четыре "семейства" более эффективных методов моделирования переноса света: растеризация, включая scanline rendering, рассматривает объекты на сцене и проецирует их для формирования изображения без возможности генерирования эффекта перспективы точки обзора; При Ray casting сцена рассматривается как наблюдаемая с определенной точки зрения, вычисляя наблюдаемое изображение, основываясь только на геометрии и основных оптических законах интенсивности отражения, и, возможно, используя методы Монте-Карло для уменьшения артефактов; radiosity использует конечно-элементную математику для моделирования диффузного распространения света от поверхностей; ray tracing аналогична ray casting, но использует более совершенное оптическое моделирование и обычно использует методы Монте-Карло для получения более реалистичных результатов со скоростью, которая часто на несколько порядков медленнее.

Самое современное программное обеспечение сочетает в себе два или более методов для получения достаточно хороших результатов при разумных затратах времени.

Scanline рендеринг и растеризация

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

Если pixel-by-pixel подход к визуализации нецелесообразен или слишком медленен для какой-либо задачи, тогда primitive-by-primitive подход к визуализации может оказаться полезным. Здесь каждый просматривает каждый из примитивов, определяет, на какие пиксели изображения он влияет, и соответственно модифицирует эти пиксели. Это называется растеризацией, и это метод рендеринга, используемый всеми современными видеокартами.

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

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

Ray casting

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

Моделируемая геометрия анализируется попиксельно (pixel-by-pixel), построчно (line by line), с точки зрения наружу, как если бы лучи отбрасывались от точки взгляда. Там, где объект пересекается, значение цвета в точке может быть оценено с использованием нескольких методов. В самом простом случае значение цвета объекта в точке пересечения становится значением этого пикселя. Цвет можно определить по текстурной карте. Более сложный метод заключается в изменении значения цвета с помощью коэффициента освещения, но без расчета отношения к моделируемому источнику света. Чтобы уменьшить артефакты, количество лучей в слегка разных направлениях может быть усреднено.

Может быть дополнительно использовано грубое моделирование оптических свойств: обычно очень простое вычисление луча от объекта к точке зрения. Другой расчет сделан для угла падения световых лучей от источника(ов) света. И из этих и указанных интенсивностей источников света вычисляется значение пикселя. Или можно использовать освещение, построенное по алгоритму radiosity. Или их сочетание.

Radiosity

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

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

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

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

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

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

Ray tracing

Ray tracing является продолжением той же технологии, которая была разработана при Scanline и Ray casting. Как и те, он хорошо обрабатывает сложные объекты, и объекты могут быть описаны математически. В отличие от Scanline и Ray casting, Ray tracing почти всегда является методом Монте-Карло, который основан на усреднении числа случайно сгенерированных образцов из модели.

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

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

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

В некоторых случаях в каждой точке пересечения может быть создано несколько лучей.

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

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

Пара интересных фактов про рендеринг

Например фильм «Аватар» Джеймса Камерона рендерился на 34 стойках HP с 32 блейдами HP Proliant BL2x220c в каждой 40 000 процессорных ядер и 104 Тб RAM. При такой мощности на один кадр уходило около 50-ти часов.

А известная мультипликационная компания Pixar, которая сделала такие мультфильмы как «Волли» и «Тачки», разработала для своих проектов собственную рендер систему которая называется Pixars RenderMan. Этот рендер направлен на быстрый просчет сложных анимационных эффектов, таких как: вода, облака, шерсть, волосы и другое.

Итог

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

cgaward.com.ua

Рендеринг — Википедия

Фотореалистичное изображение, созданное POV-Ray 3.6. Модели кувшина, стаканов и пепельницы созданы при помощи Rhinoceros 3D, модель игральной кости — в cinema 4D.

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

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

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

Часто в компьютерной графике (художественной и технической) под рендерингом (3D-рендерингом) понимают создание плоской картинки — цифрового растрового изображения — по разработанной 3D-сцене. Синонимом в данном контексте является визуализация.

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

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

Компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).

Методы рендеринга (визуализации)

На текущий момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения.

Трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерно много времени, если не применяется аппроксимация (семплирование).

Вследствие этого, было разработано четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:

  • Растеризация (англ. rasterization) совместно с методом сканирования строк (Scanline rendering (англ.)). Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя.
  • Ray casting (рейкастинг) (англ. ray casting). Сцена рассматривается, как наблюдаемая из определённой точки. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. При этом лучи прекращают своё распространение (в отличие от метода обратного трассирования), когда достигают любого объекта сцены либо её фона. Возможно использование каких-либо очень простых способов добавления оптических эффектов. Эффект перспективы получается естественным образом в случае, когда бросаемые лучи запускаются под углом, зависящим от положения пикселя на экране и максимального угла обзора камеры.
  • Трассировка лучей (англ. ray tracing) похожа на метод бросания лучей. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три луча-компонента, каждый из которых вносит свой вклад в цвет пикселя на двумерном экране: отражённый, теневой и преломлённый. Количество таких компонентов определяет глубину трассировки и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, однако из-за большой ресурсоёмкости процесс визуализации занимает значительное время.
  • Трассировка пути (англ. path tracing) использует похожий принцип трассировки распространения лучей, однако этот метод является наиболее приближённым к физическим законам распространения света. Также является самым ресурсоёмким.

Передовое программное обеспечение обычно совмещает в себе несколько техник, чтобы получить достаточно качественное и фотореалистичное изображение за приемлемые затраты вычислительных ресурсов.

Математическое обоснование

Реализация механизма рендеринга всегда основывается на физической модели. Производимые вычисления относятся к той или иной физической или абстрактной модели. Основные идеи просты для понимания, но сложны для применения. Как правило, конечное элегантное решение или алгоритм более сложны и содержат в себе комбинацию разных техник.

Основное уравнение

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

Lo(x,w→)=Le(x,w→)+∫Ωfr(x,w→′,w→)Li(x,w→′)(w→′⋅n→)dw→′{\displaystyle L_{o}(x,{\vec {w}})=L_{e}(x,{\vec {w}})+\int \limits _{\Omega }f_{r}(x,{\vec {w}}',{\vec {w}})L_{i}(x,{\vec {w}}')({\vec {w}}'\cdot {\vec {n}})d{\vec {w}}'}

Неформальное толкование таково: Количество светового излучения (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)
1.6 (SketchUp)
1.5 (Rhino)

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 Да Да Да Да Да
официальный сайт YafaRay.org 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

См. также

Хронология важнейших публикаций

  • 1968 Ray casting (Appel, A. (1968). Some techniques for shading machine renderings of solids. Proceedings of the Spring Joint Computer Conference 32, 37—49.)
  • 1970 Scan-line algorithm (Bouknight, W. J. (1970). A procedure for generation of three-dimensional half-tone computer graphics presentations. Communications of the ACM)
  • 1971 Gouraud shading (Gouraud, H. (1971). Computer display of curved surfaces. IEEE Transactions on Computers 20 (6), 623—629.)
  • 1974 Texture mapping (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis, University of Utah.)
  • 1974 Z-buffer (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis)
  • 1975 Phong shading (Phong, B-T. (1975). Illumination for computer generated pictures. Communications of the ACM 18 (6), 311—316.)
  • 1976 Environment mapping (Blinn, J.F., Newell, M.E. (1976). Texture and reflection in computer generated images. Communications of the ACM 19, 542—546.)
  • 1977 Shadow volumes (Crow, F.C. (1977). Shadow algorithms for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1977) 11 (2), 242—248.)
  • 1978 Shadow buffer (Williams, L. (1978). Casting curved shadows on curved surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 270—274.)
  • 1978 Bump mapping (Blinn, J.F. (1978). Simulation of wrinkled surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 286—292.)
  • 1980 BSP trees (Fuchs, H. Kedem, Z.M. Naylor, B.F. (1980). On visible surface generation by a priori tree structures. Computer Graphics (Proceedings of SIGGRAPH 1980) 14 (3), 124—133.)
  • 1980 Ray tracing (Whitted, T. (1980). An improved illumination model for shaded display. Communications of the ACM 23 (6), 343—349.)
  • 1981 Cook shader (Cook, R.L. Torrance, K.E. (1981). A reflectance model for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1981) 15 (3), 307—316.)
  • 1983 Mipmaps (Williams, L. (1983). Pyramidal parametrics. Computer Graphics (Proceedings of SIGGRAPH 1983) 17 (3), 1—11.)
  • 1984 Octree ray tracing (Glassner, A.S. (1984). Space subdivision for fast ray tracing. IEEE Computer Graphics & Applications 4 (10), 15—22.)
  • 1984 Alpha compositing (Porter, T. Duff, T. (1984). Compositing digital images. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 253—259.)
  • 1984 Distributed ray tracing (Cook, R.L. Porter, T. Carpenter, L. (1984). Distributed ray tracing. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 137—145.)
  • 1984 Radiosity (Goral, C. Torrance, K.E. Greenberg, D.P. Battaile, B. (1984). Modelling the interaction of light between diffuse surfaces. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 213—222.)
  • 1985 Hemi-cube radiosity (Cohen, M.F. Greenberg, D.P. (1985). The hemi-cube: a radiosity solution for complex environments. Computer Graphics (Proceedings of SIGGRAPH 1985) 19 (3), 31—40.)
  • 1986 Light source tracing (Arvo, J. (1986). Backward ray tracing. SIGGRAPH 1986 Developments in Ray Tracing course notes)
  • 1986 Rendering equation (Kajiya, J.T. (1986). The rendering equation. Computer Graphics (Proceedings of SIGGRAPH 1986) 20 (4), 143—150.)
  • 1987 Reyes algorithm (Cook, R.L. Carpenter, L. Catmull, E. (1987). The reyes image rendering architecture. Computer Graphics (Proceedings of SIGGRAPH 1987) 21 (4), 95—102.)
  • 1991 Hierarchical radiosity (Hanrahan, P. Salzman, D. Aupperle, L. (1991). A rapid hierarchical radiosity algorithm. Computer Graphics (Proceedings of SIGGRAPH 1991) 25 (4), 197—206.)
  • 1993 Tone mapping (Tumblin, J. Rushmeier, H.E. (1993). Tone reproduction for realistic computer generated images. IEEE Computer Graphics & Applications 13 (6), 42—48.)
  • 1993 Subsurface scattering (Hanrahan, P. Krueger, W. (1993). Reflection from layered surfaces due to subsurface scattering. Computer Graphics (Proceedings of SIGGRAPH 1993) 27 (), 165—174.)
  • 1995 Photon mapping (Jensen, H.J. Christensen, N.J. (1995). Photon maps in bidirectional monte carlo ray tracing of complex objects. Computers & Graphics 19 (2), 215—224.)
  • 1997 Metropolis light transport (Veach, E. Guibas, L. (1997). Metropolis light transport. Computer Graphics (Proceedings of SIGGRAPH 1997) 16 65—76.)

wikipedia.green

Рендер - это... Что такое Рендер?

Фотореалистичное изображение, отрендеренное в Rhinoceros 3D, модель игральной кости — в Cinema 4D.

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

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

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

Часто в компьютерной графике (художественной и технической) под рендерингом понимают создание плоского изображения (картинки) по разработанной 3D-сцене. Изображение — это цифровое растровое изображение. Синонимом в данном контексте является Визуализация.

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

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

Методы рендеринга (визуализации)

На текущий момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения.

Трассирование каждого луча света в сцене непрактично и занимает неприемлемо длительные периоды времени. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерное количество времени, если не применяется аппроксимация (семплирование).

Вследствие этого, было разработано четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:

  • Растеризация (англ. rasterization) и метод сканирования строк (англ. scanline rendering). Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя.
  • Метод бросания лучей (англ. ray casting). Сцена рассматривается, как наблюдаемая из определённой точки. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пикселя на двумерном экране. При этом лучи прекращают своё распространение (в отличие от метода обратного трассирования), когда достигают любого объекта сцены либо её фона. Возможно используются какие-то очень простые техники добавления оптических эффектов или внесения эффекта перспективы.
  • Глобальное освещение (англ. global illumination, radiosity). Использует математику конечных элементов, чтобы симулировать диффузное распространение света от поверхностей и при этом достигать эффектов «мягкости» освещения.
  • Трассировка лучей (англ. ray tracing) похожа на метод бросания лучей. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три компоненты, луча, каждый из которых вносит свой вклад в цвет пиксела на двумерном экране: отражённый, теневой и преломленный. Количество таких разделений на компоненты определяет глубину трассирования и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, но при этом он очень ресурсоёмкий и процесс визуализации занимает значительные периоды времени.

Передовое программное обеспечение обычно совмещает в себе несколько техник, чтобы получить достаточно качественное и фотореалистичное изображение за приемлемые затраты вычислительных ресурсов.

Математическое обоснование

Реализация механизма рендеринга всегда основывается на физической модели. Производимые вычисления относятся к той или иной физической или абстрактной модели. Основные идеи просты для понимания, но сложны для применения. Как правило, конечное элегантное решение или алгоритм более сложны и содержат в себе комбинацию разных техник.

Основное уравнение

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

Неформальное толкование таково: Количество светового излучения (Lo), исходящего из определённой точки в определённом направлении есть собственное излучение и отражённое излучение. Отражённое излучение есть сумма по всем направлениям приходящего излучения (Li), умноженного на коэффициент отражения из данного угла. Объединяя в одном уравнении приходящий свет с исходящим в одной точке, это уравнение составляет описание всего светового потока в заданной системе.

Программное обеспечение для рендеринга — Рендеры (Визуализаторы)

  • 3Delight
  • AIR
  • ART
  • AQSIS
  • Angel
  • BMRT (Blue Moon Rendering Tools) (распространение прекращено)
  • Brazil R/S
  • BusyRay
  • Entropy (продажи прекращены)
  • NVIDIA, mental ray)
  • Holomatix Renditio (интерактивный рейтрейсер)
  • Indigo Rendererv
  • mental ray
  • LuxRender
  • Maxwell Render
  • Meridian
  • RenderMan (PhotoRealistic RenderMan, Pixar's RenderMan или PRMan)
  • Turtle
  • YafRay
Пакеты трёхмерного моделирования, имеющие собственные рендеры

Таблица сравнения свойств рендеров

рендеры совместим с 3ds Max совместим с совместим с Houdini совместим с LightWave совместим с SketchUp совместим с Cinema 4D biased, unbiased scanline raytrace алгоритмы Global Illumination или свои алгоритмы Depth of Field Motion Blur (vector pass) Displasment Area Light Glossy Reflect/Refract SubSurface Scattering (SSS) Stand Alone текущая версия год выпуска библиотека материалов основан на технологии normal mapping IBL Physical sun официальный сайт страна производитель стоимость $ основное преимущество компания производитель
Да, через MaxMan Да, через RenderMan Artist Tools Да, через XSIMan Да Нет Нет Нет Да (начиная с 11-ой версии) biased Да очень медленный Да очень быстрый быстрый Да Да Да 13.5,2,1 1987 Нет США 3500 mental ray встроен встроен встроен Да Нет Нет Нет Нет biased Да Да Photon, Final Gather (Quasi-Montecarlo) Да Да Да Да Да Да Да 3.6 1986 33 My mentalRay Германия 195 mental images (c 2008 NVIDIA)
Gelato (разработка прекращена) Да Да Нет Нет Нет Нет Нет Нет biased Да Да Да быстрый быстрый Да Да Да 2.2 2003 Нет США 0 NVIDIA
Да Да, предрелизная версия, доступна для скачивания на официальном сайте Нет Нет Нет Нет Да Да biased Нет Да Light Cash, Photon Map, Irradiance Map, Brute Force (Quasi-Montecarlo) Да Да медленный, 2d и 3d Да Да Да 2005 года (сырая) 1.5 RC5 2000 1300 vray-materials Болгария 1135 (Super Bundle) 999 (Bundle) 899 (Standart) 240 (Educational) Chaos Group
finalRender Да Да Нет Нет Нет Нет Нет Да biased Нет Да Hyper Global Illumination, Adaptive Quasi-Montecarlo, Image, Quasi Monte-Carlo Да Да, считает вектор пасс медлленный Да Да Да Нет Stage-2 2002 30 оф. сайт Германия 1000 cebas
Brazil R/S Да Нет Нет Нет Нет Нет Нет Нет biased Нет Да Quasi-Montecarlo, PhotonMapping Да Да Нет Да Да Да Нет 2 2000 113 оф. сайт США 735 SplutterFish
Turtle Нет Да Нет Нет Нет Нет Нет Нет biased Нет Да Photon Map, Final Gather Да Да быстрый Да Да Да Нет 4.01 2003 Нет liquidlight Швеция 1500 Baking высокая скорость (не очень высокое качество) Illuminate Labs
Maxwell Render Да Да Да Нет Да Нет Да Да unbiased Нет Нет Metropolis Light Transport Да Да Да Да Да Да Да 1.61 2007 (?) 3226 оф. сайт Maxwell Render Испания 995 Next Limit
Fryrender Да Да Да Да Да Нет Да Да unbiased Нет Нет Metropolis Light Transport Да Да Да Да Да Да Да 1.91 2006 (?) 110 оф. сайт Fryrender Испания 1200 Feversoft
Indigo Renderer Да Да Да Да Нет Да Да Да unbiased Нет Нет Metropolis Light Transport Да Да Да Да Да Да Да 1.0.9 2006 80 оф. сайт Metropolis Light Transport Indigo Renderer  ? 0 Открытое программное обеспечение  ?

См. также

Хронология важнейших публикаций

  • 1968 Ray casting (Appel, A. (1968). Some techniques for shading machine renderings of solids. Proceedings of the Spring Joint Computer Conference 32, 37—49.)
  • 1970 Scan-line algorithm (Bouknight, W. J. (1970). A procedure for generation of three-dimensional half-tone computer graphics presentations. Communications of the ACM)
  • 1971 Gouraud shading (Gouraud, H. (1971). Computer display of curved surfaces. IEEE Transactions on Computers 20 (6), 623—629.)
  • 1974 Texture mapping (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis, University of Utah.)
  • 1974 Z-buffer (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis)
  • 1975 Phong shading (Phong, B-T. (1975). Illumination for computer generated pictures. Communications of the ACM 18 (6), 311—316.)
  • 1976 Environment mapping (Blinn, J.F., Newell, M.E. (1976). Texture and reflection in computer generated images. Communications of the ACM 19, 542—546.)
  • 1977 Shadow volumes (Crow, F.C. (1977). Shadow algorithms for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1977) 11 (2), 242—248.)
  • 1978 Shadow buffer (Williams, L. (1978). Casting curved shadows on curved surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 270—274.)
  • 1978 Bump mapping (Blinn, J.F. (1978). Simulation of wrinkled surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 286—292.)
  • 1980 BSP trees (Fuchs, H. Kedem, Z.M. Naylor, B.F. (1980). On visible surface generation by a priori tree structures. Computer Graphics (Proceedings of SIGGRAPH 1980) 14 (3), 124—133.)
  • 1980 Ray tracing (Whitted, T. (1980). An improved illumination model for shaded display. Communications of the ACM 23 (6), 343—349.)
  • 1981 Cook shader (Cook, R.L. Torrance, K.E. (1981). A reflectance model for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1981) 15 (3), 307—316.)
  • 1983 Mipmaps (Williams, L. (1983). Pyramidal parametrics. Computer Graphics (Proceedings of SIGGRAPH 1983) 17 (3), 1—11.)
  • 1984 Octree ray tracing (Glassner, A.S. (1984). Space subdivision for fast ray tracing. IEEE Computer Graphics & Applications 4 (10), 15—22.)
  • 1984 Alpha compositing (Porter, T. Duff, T. (1984). Compositing digital images. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 253—259.)
  • 1984 Distributed ray tracing (Cook, R.L. Porter, T. Carpenter, L. (1984). Distributed ray tracing. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 137—145.)
  • 1984 Radiosity (Goral, C. Torrance, K.E. Greenberg, D.P. Battaile, B. (1984). Modelling the interaction of light between diffuse surfaces. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 213—222.)
  • 1985 Hemi-cube radiosity (Cohen, M.F. Greenberg, D.P. (1985). The hemi-cube: a radiosity solution for complex environments. Computer Graphics (Proceedings of SIGGRAPH 1985) 19 (3), 31—40.)
  • 1986 Light source tracing (Arvo, J. (1986). Backward ray tracing. SIGGRAPH 1986 Developments in Ray Tracing course notes)
  • 1986 Rendering equation (Kajiya, J.T. (1986). The rendering equation. Computer Graphics (Proceedings of SIGGRAPH 1986) 20 (4), 143—150.)
  • 1987 Reyes algorithm (Cook, R.L. Carpenter, L. Catmull, E. (1987). The reyes image rendering architecture. Computer Graphics (Proceedings of SIGGRAPH 1987) 21 (4), 95—102.)
  • 1991 Hierarchical radiosity (Hanrahan, P. Salzman, D. Aupperle, L. (1991). A rapid hierarchical radiosity algorithm. Computer Graphics (Proceedings of SIGGRAPH 1991) 25 (4), 197—206.)
  • 1993 Tone mapping (Tumblin, J. Rushmeier, H.E. (1993). Tone reproduction for realistic computer generated images. IEEE Computer Graphics & Applications 13 (6), 42—48.)
  • 1993 Subsurface scattering (Hanrahan, P. Krueger, W. (1993). Reflection from layered surfaces due to subsurface scattering. Computer Graphics (Proceedings of SIGGRAPH 1993) 27 (), 165—174.)
  • 1995 Photon mapping (Jensen, H.J. Christensen, N.J. (1995). Photon maps in bidirectional monte carlo ray tracing of complex objects. Computers & Graphics 19 (2), 215—224.)
  • 1997 Metropolis light transport (Veach, E. Guibas, L. (1997). Metropolis light transport. Computer Graphics (Proceedings of SIGGRAPH 1997) 16 65—76.)

Wikimedia Foundation. 2010.

dic.academic.ru

Рендеринг - это... Что такое Рендеринг?

Фотореалистичное изображение, созданное POV-Ray 3.6. Модели кувшина, стаканов и пепельницы созданы при помощи Rhinoceros 3D, модель игральной кости — в Cinema 4D.

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

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

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

Часто в компьютерной графике (художественной и технической) под рендерингом (3D-рендерингом) понимают создание плоского изображения (картинки) по разработанной 3D-сцене. Изображение — это цифровое растровое изображение. Синонимом в данном контексте является Визуализация.

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

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

Компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).

Методы рендеринга (визуализации)

На текущий момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения.

Трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерно много времени, если не применяется аппроксимация (семплирование).

Вследствие этого, было разработано четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:

  • Растеризация (англ. rasterization) совместно с методом сканирования строк (англ. scanline rendering). Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя.
  • Ray casting (рейкастинг) (англ. ray casting). Сцена рассматривается, как наблюдаемая из определённой точки. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. При этом лучи прекращают своё распространение (в отличие от метода обратного трассирования), когда достигают любого объекта сцены либо её фона. Возможно использование каких-либо очень простых способов добавления оптических эффектов. Эффект перспективы получается естественным образом в случае, когда бросаемые лучи запускаются под углом, зависящим от положения пикселя на экране и максимального угла обзора камеры.
  • Трассировка лучей (англ. ray tracing) похожа на метод бросания лучей. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три компонента, луча, каждый из которых вносит свой вклад в цвет пиксела на двумерном экране: отражённый, теневой и преломленный. Количество таких разделений на компоненты определяет глубину трассирования и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, но при этом он очень ресурсоёмкий, и процесс визуализации занимает значительные периоды времени.
  • Трассировка пути (англ. path tracing) содержит похожий принцип трассировки распространения лучей, однако этот метод является самым приближенным к физическим законам распространения света. Также является самым ресурсоёмким.

Передовое программное обеспечение обычно совмещает в себе несколько техник, чтобы получить достаточно качественное и фотореалистичное изображение за приемлемые затраты вычислительных ресурсов.

Математическое обоснование

Реализация механизма рендеринга всегда основывается на физической модели. Производимые вычисления относятся к той или иной физической или абстрактной модели. Основные идеи просты для понимания, но сложны для применения. Как правило, конечное элегантное решение или алгоритм более сложны и содержат в себе комбинацию разных техник.

Основное уравнение

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

Неформальное толкование таково: Количество светового излучения (Lo), исходящего из определённой точки в определённом направлении есть собственное излучение и отражённое излучение. Отражённое излучение есть сумма по всем направлениям приходящего излучения (Li), умноженного на коэффициент отражения из данного угла. Объединяя в одном уравнении приходящий свет с исходящим в одной точке, это уравнение составляет описание всего светового потока в заданной системе.

Программное обеспечение для рендеринга — рендеры (визуализаторы)

Рендереры, работающие в реальном (или почти в реальном) времени.
Пакеты трёхмерного моделирования, имеющие собственные рендереры

Таблица сравнения свойств рендеров

RenderMan mental ray Gelato (разработка прекращена) V-Ray finalRender Brazil R/S Turtle Maxwell Render Fryrender Indigo Renderer LuxRender Kerkythea YafaRay
совместим с 3ds Max Да, через MaxMan встроен Да Да Да Да Нет Да Да Да Да Да Нет
совместим с Maya Да, через RenderMan Artist Tools встроен Да Да Да Нет Да Да Да Да Да Нет
совместим с Softimage Да, через XSIMan встроен Нет Да Нет Нет Нет Да Да Да Да Нет
совместим с Houdini Да Да Нет Нет Нет Нет Нет Нет Да Да Нет Нет
совместим с LightWave Нет Нет Нет Нет Нет Нет Нет Да Да Нет Нет Нет
совместим с Blender Нет Нет Нет Нет Нет Нет Нет Нет Нет Да Да Да Да
совместим с SketchUp Нет Нет Нет Да Нет Нет Нет Да Да Да Нет Да Нет
совместим с Cinema 4D Да (начиная с 11-ой версии) Да Нет Да Да Нет Нет Да Да Да Да Нет, заморожен Нет
платформа Microsoft Windows, Linux, Mac OS X Microsoft Windows, Linux, Mac OS X
biased, unbiased (без допущений) biased biased biased biased biased biased biased unbiased unbiased unbiased unbiased
scanline Да Да Да Нет Нет Нет Нет Нет Нет Нет Нет
raytrace очень медленный Да Да Да Да Да Да Нет Нет Нет Нет Да
алгоритмы Global Illumination или свои алгоритмы Photon, Final Gather (Quasi-Montecarlo) Light Cash, 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.7 2.2 2.02a Stage-2 2 4.01 1.61 1.91 1.0.9 v1.0-RC4 Kerkythea 2008 Echo 0.1.1 (0.1.2 Beta 5a)
год выпуска 1987 1986 2003 2000 2002 2000 2003 2007 (?) 2006 (?) 2006 2011 2008
библиотека материалов Нет 33 My mentalRay Нет 2300+ vray-materials 30 оф. сайт 113 оф. сайт Нет 3200+ оф. сайт 110 оф. сайт 80 оф. сайт 61 оф. сайт
основан на технологии liquidlight Metropolis Light Transport
normal mapping
IBL/HDRI Lighting Да
Physical sky/sun Да Да
официальный сайт MaxwellRender.com Fryrender.com IndigoRenderer.com LuxRender.net kerkythea.net YafaRay.org
страна производитель США Германия США Болгария Германия США Швеция Испания Испания
стоимость $ 3500 195 бесплатное 1135 (Super Bundle) 999 (Bundle) 899 (Standart) 240 (Educational) 1000 735 1500 995 1200 295€ бесплатное, GNU бесплатное бесплатное, LGPL 2.1
основное преимущество Baking высокая скорость (не очень высокое качество) бесплатное бесплатное бесплатное
компания производитель Pixar mental images (c 2008 NVIDIA) NVIDIA Chaos Group Cebas SplutterFish Illuminate Labs Next Limit Feversoft

См. также

Хронология важнейших публикаций

  • 1968 Ray casting (Appel, A. (1968). Some techniques for shading machine renderings of solids. Proceedings of the Spring Joint Computer Conference 32, 37—49.)
  • 1970 Scan-line algorithm (Bouknight, W. J. (1970). A procedure for generation of three-dimensional half-tone computer graphics presentations. Communications of the ACM)
  • 1971 Gouraud shading (Gouraud, H. (1971). Computer display of curved surfaces. IEEE Transactions on Computers 20 (6), 623—629.)
  • 1974 Texture mapping (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis, University of Utah.)
  • 1974 Z-buffer (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis)
  • 1975 Phong shading (Phong, B-T. (1975). Illumination for computer generated pictures. Communications of the ACM 18 (6), 311—316.)
  • 1976 Environment mapping (Blinn, J.F., Newell, M.E. (1976). Texture and reflection in computer generated images. Communications of the ACM 19, 542—546.)
  • 1977 Shadow volumes (Crow, F.C. (1977). Shadow algorithms for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1977) 11 (2), 242—248.)
  • 1978 Shadow buffer (Williams, L. (1978). Casting curved shadows on curved surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 270—274.)
  • 1978 Bump mapping (Blinn, J.F. (1978). Simulation of wrinkled surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 286—292.)
  • 1980 BSP trees (Fuchs, H. Kedem, Z.M. Naylor, B.F. (1980). On visible surface generation by a priori tree structures. Computer Graphics (Proceedings of SIGGRAPH 1980) 14 (3), 124—133.)
  • 1980 Ray tracing (Whitted, T. (1980). An improved illumination model for shaded display. Communications of the ACM 23 (6), 343—349.)
  • 1981 Cook shader (Cook, R.L. Torrance, K.E. (1981). A reflectance model for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1981) 15 (3), 307—316.)
  • 1983 Mipmaps (Williams, L. (1983). Pyramidal parametrics. Computer Graphics (Proceedings of SIGGRAPH 1983) 17 (3), 1—11.)
  • 1984 Octree ray tracing (Glassner, A.S. (1984). Space subdivision for fast ray tracing. IEEE Computer Graphics & Applications 4 (10), 15—22.)
  • 1984 Alpha compositing (Porter, T. Duff, T. (1984). Compositing digital images. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 253—259.)
  • 1984 Distributed ray tracing (Cook, R.L. Porter, T. Carpenter, L. (1984). Distributed ray tracing. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 137—145.)
  • 1984 Radiosity (Goral, C. Torrance, K.E. Greenberg, D.P. Battaile, B. (1984). Modelling the interaction of light between diffuse surfaces. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 213—222.)
  • 1985 Hemi-cube radiosity (Cohen, M.F. Greenberg, D.P. (1985). The hemi-cube: a radiosity solution for complex environments. Computer Graphics (Proceedings of SIGGRAPH 1985) 19 (3), 31—40.)
  • 1986 Light source tracing (Arvo, J. (1986). Backward ray tracing. SIGGRAPH 1986 Developments in Ray Tracing course notes)
  • 1986 Rendering equation (Kajiya, J.T. (1986). The rendering equation. Computer Graphics (Proceedings of SIGGRAPH 1986) 20 (4), 143—150.)
  • 1987 Reyes algorithm (Cook, R.L. Carpenter, L. Catmull, E. (1987). The reyes image rendering architecture. Computer Graphics (Proceedings of SIGGRAPH 1987) 21 (4), 95—102.)
  • 1991 Hierarchical radiosity (Hanrahan, P. Salzman, D. Aupperle, L. (1991). A rapid hierarchical radiosity algorithm. Computer Graphics (Proceedings of SIGGRAPH 1991) 25 (4), 197—206.)
  • 1993 Tone mapping (Tumblin, J. Rushmeier, H.E. (1993). Tone reproduction for realistic computer generated images. IEEE Computer Graphics & Applications 13 (6), 42—48.)
  • 1993 Subsurface scattering (Hanrahan, P. Krueger, W. (1993). Reflection from layered surfaces due to subsurface scattering. Computer Graphics (Proceedings of SIGGRAPH 1993) 27 (), 165—174.)
  • 1995 Photon mapping (Jensen, H.J. Christensen, N.J. (1995). Photon maps in bidirectional monte carlo ray tracing of complex objects. Computers & Graphics 19 (2), 215—224.)
  • 1997 Metropolis light transport (Veach, E. Guibas, L. (1997). Metropolis light transport. Computer Graphics (Proceedings of SIGGRAPH 1997) 16 65—76.)

dic.academic.ru

Рендеринг что это такое, и какие особенности имеет процесс (2019)

Выбор редакции

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

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

Рисование модели происходит в несколько этапов, одним из заключительных из них является рендеринг – что это такое и как он осуществляется, рассказано в данном материале.

Содержание:

Определение

Рендеринг (или как его еще называют, рендер) – один из заключительных процессов в обработке и отрисовке определенной объемной трехмерной компьютерной модели.

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

Также иногда на этом этапе в процессе «сбора» модели могут применяться и некоторые трехмерные элементы.

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

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

Они оказывают значительную нагрузку на «железо» компьютера.

<Рис. 1 Процесс>

к содержанию ↑

Сфера применения

В каких же сферах применимо данное понятие и необходимо проведение такого процесса?

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

Компьютерное проектирование применяется в:

  • Проектировании зданий и сооружений;
  • Ландшафтной архитектуре;
  • Проектировании городской среды;
  • Дизайне помещений;
  • Почти каждая произведенная материальная вещь когда-то была компьютерной моделью;
  • Видеоиграх;
  • Производстве кинофильмов и др.

При этом, данный процесс, по своей сути, является завершающим.

Он может быть последним или предпоследним при проектировании модели.

Отметим, что рендерингом часто называют и не сам процесс составления модели, а его результат – готовую компьютерную трехмерную модель.

<Рис. 2 В дизайне>

к содержанию ↑

Технология

Данную процедуру можно назвать одной из самых сложных при работе с трехмерными изображениями и объектами в компьютерной графике.

Этот этап сопровождается сложными техническими вычислениями, которые выполняет движок программы – математические данные о сцене и объекте на этом этапе переводятся в окончательное двухмерное изображение.

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

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

<Рис. 3 Создание модели>

к содержанию ↑

Виды

В зависимости от особенностей технологии и работы выделяются два основных типа такого процесса – это рендеринг в реальном времени и предварительный.

Далее рассказано о том, чем они отличаются и какие особенности имеют.

В реальном времени

Такой типа имеет широкое распространение, преимущественно, в компьютерных играх.

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

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

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

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

По этой причине движку приходится обрабатывать картинку со скорость 25 кадров в секунду, так как уже при снижении скорости до 20 кадров в секунду, пользователь будет ощущать дискомфорт, так как картинка станет дергаться и тормозить.

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

По этой причине для плавного рендеринга необходимы, в первую очередь, карта текстур и некоторые допустимые упрощения графики.

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

Именно от качества оптимизации движка рендера во многом зависит то, насколько стабильно работает игра, и насколько реалистично смотрится все происходящее.

<Рис. 4 В реальном времени>

Предварительный

Такой тип используется в ситуациях, когда интерактивность не важна.

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

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

<Рис. 5 Предварительный>

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

geek-nose.com

Рендеринг — Википедия. Что такое Рендеринг

Фотореалистичное изображение, созданное POV-Ray 3.6. Модели кувшина, стаканов и пепельницы созданы при помощи Rhinoceros 3D, модель игральной кости — в cinema 4D.

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

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

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

Часто в компьютерной графике (художественной и технической) под рендерингом (3D-рендерингом) понимают создание плоской картинки — цифрового растрового изображения — по разработанной 3D-сцене. Синонимом в данном контексте является визуализация.

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

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

Компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).

Методы рендеринга (визуализации)

На текущий момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения.

Трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерно много времени, если не применяется аппроксимация (семплирование).

Вследствие этого, было разработано четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:

  • Растеризация (англ. rasterization) совместно с методом сканирования строк (Scanline rendering (англ.)). Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя.
  • Ray casting (рейкастинг) (англ. ray casting). Сцена рассматривается, как наблюдаемая из определённой точки. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. При этом лучи прекращают своё распространение (в отличие от метода обратного трассирования), когда достигают любого объекта сцены либо её фона. Возможно использование каких-либо очень простых способов добавления оптических эффектов. Эффект перспективы получается естественным образом в случае, когда бросаемые лучи запускаются под углом, зависящим от положения пикселя на экране и максимального угла обзора камеры.
  • Трассировка лучей (англ. ray tracing) похожа на метод бросания лучей. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три луча-компонента, каждый из которых вносит свой вклад в цвет пикселя на двумерном экране: отражённый, теневой и преломлённый. Количество таких компонентов определяет глубину трассировки и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, однако из-за большой ресурсоёмкости процесс визуализации занимает значительное время.
  • Трассировка пути (англ. path tracing) использует похожий принцип трассировки распространения лучей, однако этот метод является наиболее приближённым к физическим законам распространения света. Также является самым ресурсоёмким.

Передовое программное обеспечение обычно совмещает в себе несколько техник, чтобы получить достаточно качественное и фотореалистичное изображение за приемлемые затраты вычислительных ресурсов.

Математическое обоснование

Реализация механизма рендеринга всегда основывается на физической модели. Производимые вычисления относятся к той или иной физической или абстрактной модели. Основные идеи просты для понимания, но сложны для применения. Как правило, конечное элегантное решение или алгоритм более сложны и содержат в себе комбинацию разных техник.

Основное уравнение

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

Lo(x,w→)=Le(x,w→)+∫Ωfr(x,w→′,w→)Li(x,w→′)(w→′⋅n→)dw→′{\displaystyle L_{o}(x,{\vec {w}})=L_{e}(x,{\vec {w}})+\int \limits _{\Omega }f_{r}(x,{\vec {w}}',{\vec {w}})L_{i}(x,{\vec {w}}')({\vec {w}}'\cdot {\vec {n}})d{\vec {w}}'}

Неформальное толкование таково: Количество светового излучения (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)
1.6 (SketchUp)
1.5 (Rhino)

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 Да Да Да Да Да
официальный сайт YafaRay.org 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

См. также

Хронология важнейших публикаций

  • 1968 Ray casting (Appel, A. (1968). Some techniques for shading machine renderings of solids. Proceedings of the Spring Joint Computer Conference 32, 37—49.)
  • 1970 Scan-line algorithm (Bouknight, W. J. (1970). A procedure for generation of three-dimensional half-tone computer graphics presentations. Communications of the ACM)
  • 1971 Gouraud shading (Gouraud, H. (1971). Computer display of curved surfaces. IEEE Transactions on Computers 20 (6), 623—629.)
  • 1974 Texture mapping (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis, University of Utah.)
  • 1974 Z-buffer (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis)
  • 1975 Phong shading (Phong, B-T. (1975). Illumination for computer generated pictures. Communications of the ACM 18 (6), 311—316.)
  • 1976 Environment mapping (Blinn, J.F., Newell, M.E. (1976). Texture and reflection in computer generated images. Communications of the ACM 19, 542—546.)
  • 1977 Shadow volumes (Crow, F.C. (1977). Shadow algorithms for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1977) 11 (2), 242—248.)
  • 1978 Shadow buffer (Williams, L. (1978). Casting curved shadows on curved surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 270—274.)
  • 1978 Bump mapping (Blinn, J.F. (1978). Simulation of wrinkled surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 286—292.)
  • 1980 BSP trees (Fuchs, H. Kedem, Z.M. Naylor, B.F. (1980). On visible surface generation by a priori tree structures. Computer Graphics (Proceedings of SIGGRAPH 1980) 14 (3), 124—133.)
  • 1980 Ray tracing (Whitted, T. (1980). An improved illumination model for shaded display. Communications of the ACM 23 (6), 343—349.)
  • 1981 Cook shader (Cook, R.L. Torrance, K.E. (1981). A reflectance model for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1981) 15 (3), 307—316.)
  • 1983 Mipmaps (Williams, L. (1983). Pyramidal parametrics. Computer Graphics (Proceedings of SIGGRAPH 1983) 17 (3), 1—11.)
  • 1984 Octree ray tracing (Glassner, A.S. (1984). Space subdivision for fast ray tracing. IEEE Computer Graphics & Applications 4 (10), 15—22.)
  • 1984 Alpha compositing (Porter, T. Duff, T. (1984). Compositing digital images. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 253—259.)
  • 1984 Distributed ray tracing (Cook, R.L. Porter, T. Carpenter, L. (1984). Distributed ray tracing. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 137—145.)
  • 1984 Radiosity (Goral, C. Torrance, K.E. Greenberg, D.P. Battaile, B. (1984). Modelling the interaction of light between diffuse surfaces. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 213—222.)
  • 1985 Hemi-cube radiosity (Cohen, M.F. Greenberg, D.P. (1985). The hemi-cube: a radiosity solution for complex environments. Computer Graphics (Proceedings of SIGGRAPH 1985) 19 (3), 31—40.)
  • 1986 Light source tracing (Arvo, J. (1986). Backward ray tracing. SIGGRAPH 1986 Developments in Ray Tracing course notes)
  • 1986 Rendering equation (Kajiya, J.T. (1986). The rendering equation. Computer Graphics (Proceedings of SIGGRAPH 1986) 20 (4), 143—150.)
  • 1987 Reyes algorithm (Cook, R.L. Carpenter, L. Catmull, E. (1987). The reyes image rendering architecture. Computer Graphics (Proceedings of SIGGRAPH 1987) 21 (4), 95—102.)
  • 1991 Hierarchical radiosity (Hanrahan, P. Salzman, D. Aupperle, L. (1991). A rapid hierarchical radiosity algorithm. Computer Graphics (Proceedings of SIGGRAPH 1991) 25 (4), 197—206.)
  • 1993 Tone mapping (Tumblin, J. Rushmeier, H.E. (1993). Tone reproduction for realistic computer generated images. IEEE Computer Graphics & Applications 13 (6), 42—48.)
  • 1993 Subsurface scattering (Hanrahan, P. Krueger, W. (1993). Reflection from layered surfaces due to subsurface scattering. Computer Graphics (Proceedings of SIGGRAPH 1993) 27 (), 165—174.)
  • 1995 Photon mapping (Jensen, H.J. Christensen, N.J. (1995). Photon maps in bidirectional monte carlo ray tracing of complex objects. Computers & Graphics 19 (2), 215—224.)
  • 1997 Metropolis light transport (Veach, E. Guibas, L. (1997). Metropolis light transport. Computer Graphics (Proceedings of SIGGRAPH 1997) 16 65—76.)

wiki.sc

Как происходит рендеринг кадра видеоигры / Habr

Deus Ex Human Revolution — это компьютерная игра 2011 года, которая является более успешным продолжением оригинальной Deus Ex, чем Invisible War. Но этот пост не о качестве игры, а о демонстрации её технических принципов. Адриан Курреж провёл несколько часов за реверс-инжинирингом, пытаясь понять с помощью инструмента Renderdoc, как происходит обработка каждого из кадров Human Revolution. Затем Адриан изложил результаты в своём блоге.

Игра построена на основе модифицированного проприетарного движка Crystal от компании Crystal Dynamics. Human Revolution была одной из первых игр, которая использовала 11 версию DirectX. На момент выхода уровень графики был на отличном уровне, похождения Адама Дженсена по вентиляционным каналам неплохо смотрятся и сейчас. При этом игра была не слишком требовательной к аппаратной составляющей компьютера.


Для рассмотрения Адриан выбрал этот кадр. Так его видит игрок.

На первый взгляд может показаться, что Human Revolution использует технику рендеринга Forward+. Но популяризация этого метода случилась куда позже выхода игры, и «Человеческая революция» обходится схемой Light Pre-Pass.

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


Карта нормалей, готово 10 %


Карта нормалей, готово 40 %


Карта нормалей, готово 70 %


Карта нормалей, готово 100 %

Одновременно происходит рендеринг карты глубин. Всего для производства обеих компонент потребовалось 166 вызовов отрисовки.

Тени генерируются с помощью Parallel-Split Shadow Maps. Каждая из теней рендерится единожды для каждого из источников света, которые могут при взаимодействии с объектами создавать тень. В данной сцене таких источников два: один в офисе справа, другой на вершине скульптуры-руки. Каждая из карт теней представляет из себя квадрат 1024×1024 внутри текстуры 4096×3072.

Мелкие объекты пропускаются, возможно, часть невидимых для источника света не учитывается, поэтому этот проход требует всего 52 вызова отрисовки. Карты теней и карта глубин собираются для создания текстуры маски теней. Читается каждый тексель из карты глубин, и его видимость считается для каждого из источников света. Конечный результат выдаётся в 8-битной текстуре RGBA, которая работает как маска. Значение по умолчанию — белый цвет (1, 1, 1, 1), которое означает, что тексель ничем не затемнён. Если тексель попадает в тень какого-либо источника света, то отвечающий за него байт приравнивается нулю. Так можно обрабатывать 4 источника света.

Конечно, использовать байт для хранения только единицы и нуля слишком затратно, поэтому во время этого прохода также выполняется percentage close filtering (PCF), и в этих байтах хранится значение между 0 и 1, а не только крайние значения. Это нужно, чтобы края теней имели плавные переходы.

По буферу глубины создаётся карта преграждения окружающего света в экранном пространстве (Screen Space Ambient Occlusion, SSAO). Если видеоускоритель поддерживает DirectX 11, то шейдером создаётся размытие с ядром 19×19. На старых карточках это делается пиксельным шейдером.


SSAO, первый проход


Конечный результат с размытием

После генерации значение текстуры SSAO хранится в альфа-канале карты нормалей.

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


Готово 10 %


Готово 40 %


Готово 70 %


Готово 100 %

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


Готово 10 %


Готово 40 %


Готово 70 %


Готово 100 %

Затем добавляются декали (таблички на стенах, следы от пуль), прозрачные объекты (стекла в окнах) и искусственные объёмные эффекты освещения.


Добавлены прозрачные объекты и декали


Добавлены эффекты освещения

Эффекты освещения являются группой спрайтов, которые отрендерены в 3D. Это не просто плоские объекты, постоянно обращённые к камере, это двадцатигранники специального масштаба. Свечение обсчитывается полностью процедурно.

Рендер непрозрачных и прозрачных объектов был выполнен с помощью 253 вызовов отрисовки.

Для добавления эффекта засвечивания bloom нужно знать, какие области очень яркие. Human Revolution использует LDR, буфера HDR нет. При предыдущем проходе в альфа-канал передавались данные по интенсивности.

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

Важной составляющей является сглаживание, иначе изображение будет выглядеть плохо из-за «лесенок» границ. Human Revolution поддерживает множество методов: DLAA, MLAA, FXAA и так далее. В примере Адриана используется FXAA.


Без сглаживания


Результат применения FXAA

Всё почти готово. По соображениям стиля игра обладает золотистым оттенком, его, конечно, можно убрать с помощью стороннего мода. Но по умолчанию выполняется коррекция цвета.


До коррекции цвета


После коррекции цвета

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

Вот соотношение времени, которое требуется для выполнения каждого из шагов.

Но есть и другие интересные детали. В катсценах и диалогах используется эффект глубины резкости (Depth of Field, DoF), когда элементы не в фокусе размыты.


Изображение оригинальной сцены уменьшается в два раза


Горизонтальное размытие


Вертикальное размытие


Карта глубин


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

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

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

Это вся информация, которая нужна для отрисовки. После рендера сцены и до добавления эффекта bloom выполняется дополнительный проход. Пикселям подсвечиваемого объекта придаётся желтоватый оттенок, на них добавляется узор из треугольников, а границы силуэта обводятся с помощью некоторого подобия оператора Собеля. Позже к обводке добавляется эффект засвечивания bloom.


Силуэт: до


Силуэт: после

По материалам блога Адриана Куррежа. Презентации по техническим аспектам Deus Ex: Human Revolution на конференциях GDC: Deus Ex is in the Details, The Design Challenges of Deus Ex: Human Revolution, Building the Story-driven Experience of Deus Ex: Human Revolution.

habr.com

Рендеринг — Википедия

Фотореалистичное изображение, созданное POV-Ray 3.6. Модели кувшина, стаканов и пепельницы созданы при помощи Rhinoceros 3D, модель игральной кости — в cinema 4D.

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

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

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

Часто в компьютерной графике (художественной и технической) под рендерингом (3D-рендерингом) понимают создание плоской картинки — цифрового растрового изображения — по разработанной 3D-сцене. Синонимом в данном контексте является визуализация.

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

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

Компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).

Методы рендеринга (визуализации)

На текущий момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения.

Трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерно много времени, если не применяется аппроксимация (семплирование).

Вследствие этого, было разработано четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:

  • Растеризация (англ. rasterization) совместно с методом сканирования строк (Scanline rendering (англ.)). Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя.
  • Ray casting (рейкастинг) (англ. ray casting). Сцена рассматривается, как наблюдаемая из определённой точки. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. При этом лучи прекращают своё распространение (в отличие от метода обратного трассирования), когда достигают любого объекта сцены либо её фона. Возможно использование каких-либо очень простых способов добавления оптических эффектов. Эффект перспективы получается естественным образом в случае, когда бросаемые лучи запускаются под углом, зависящим от положения пикселя на экране и максимального угла обзора камеры.
  • Трассировка лучей (англ. ray tracing) похожа на метод бросания лучей. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три луча-компонента, каждый из которых вносит свой вклад в цвет пикселя на двумерном экране: отражённый, теневой и преломлённый. Количество таких компонентов определяет глубину трассировки и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, однако из-за большой ресурсоёмкости процесс визуализации занимает значительное время.
  • Трассировка пути (англ. path tracing) использует похожий принцип трассировки распространения лучей, однако этот метод является наиболее приближённым к физическим законам распространения света. Также является самым ресурсоёмким.

Передовое программное обеспечение обычно совмещает в себе несколько техник, чтобы получить достаточно качественное и фотореалистичное изображение за приемлемые затраты вычислительных ресурсов.

Видео по теме

Математическое обоснование

Реализация механизма рендеринга всегда основывается на физической модели. Производимые вычисления относятся к той или иной физической или абстрактной модели. Основные идеи просты для понимания, но сложны для применения. Как правило, конечное элегантное решение или алгоритм более сложны и содержат в себе комбинацию разных техник.

Основное уравнение

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

Lo(x,w→)=Le(x,w→)+∫Ωfr(x,w→′,w→)Li(x,w→′)(w→′⋅n→)dw→′{\displaystyle L_{o}(x,{\vec {w}})=L_{e}(x,{\vec {w}})+\int \limits _{\Omega }f_{r}(x,{\vec {w}}',{\vec {w}})L_{i}(x,{\vec {w}}')({\vec {w}}'\cdot {\vec {n}})d{\vec {w}}'}

Неформальное толкование таково: Количество светового излучения (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)
1.6 (SketchUp)
1.5 (Rhino)

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 Да Да Да Да Да
официальный сайт YafaRay.org 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

См. также

Хронология важнейших публикаций

  • 1968 Ray casting (Appel, A. (1968). Some techniques for shading machine renderings of solids. Proceedings of the Spring Joint Computer Conference 32, 37—49.)
  • 1970 Scan-line algorithm (Bouknight, W. J. (1970). A procedure for generation of three-dimensional half-tone computer graphics presentations. Communications of the ACM)
  • 1971 Gouraud shading (Gouraud, H. (1971). Computer display of curved surfaces. IEEE Transactions on Computers 20 (6), 623—629.)
  • 1974 Texture mapping (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis, University of Utah.)
  • 1974 Z-buffer (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis)
  • 1975 Phong shading (Phong, B-T. (1975). Illumination for computer generated pictures. Communications of the ACM 18 (6), 311—316.)
  • 1976 Environment mapping (Blinn, J.F., Newell, M.E. (1976). Texture and reflection in computer generated images. Communications of the ACM 19, 542—546.)
  • 1977 Shadow volumes (Crow, F.C. (1977). Shadow algorithms for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1977) 11 (2), 242—248.)
  • 1978 Shadow buffer (Williams, L. (1978). Casting curved shadows on curved surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 270—274.)
  • 1978 Bump mapping (Blinn, J.F. (1978). Simulation of wrinkled surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 286—292.)
  • 1980 BSP trees (Fuchs, H. Kedem, Z.M. Naylor, B.F. (1980). On visible surface generation by a priori tree structures. Computer Graphics (Proceedings of SIGGRAPH 1980) 14 (3), 124—133.)
  • 1980 Ray tracing (Whitted, T. (1980). An improved illumination model for shaded display. Communications of the ACM 23 (6), 343—349.)
  • 1981 Cook shader (Cook, R.L. Torrance, K.E. (1981). A reflectance model for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1981) 15 (3), 307—316.)
  • 1983 Mipmaps (Williams, L. (1983). Pyramidal parametrics. Computer Graphics (Proceedings of SIGGRAPH 1983) 17 (3), 1—11.)
  • 1984 Octree ray tracing (Glassner, A.S. (1984). Space subdivision for fast ray tracing. IEEE Computer Graphics & Applications 4 (10), 15—22.)
  • 1984 Alpha compositing (Porter, T. Duff, T. (1984). Compositing digital images. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 253—259.)
  • 1984 Distributed ray tracing (Cook, R.L. Porter, T. Carpenter, L. (1984). Distributed ray tracing. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 137—145.)
  • 1984 Radiosity (Goral, C. Torrance, K.E. Greenberg, D.P. Battaile, B. (1984). Modelling the interaction of light between diffuse surfaces. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 213—222.)
  • 1985 Hemi-cube radiosity (Cohen, M.F. Greenberg, D.P. (1985). The hemi-cube: a radiosity solution for complex environments. Computer Graphics (Proceedings of SIGGRAPH 1985) 19 (3), 31—40.)
  • 1986 Light source tracing (Arvo, J. (1986). Backward ray tracing. SIGGRAPH 1986 Developments in Ray Tracing course notes)
  • 1986 Rendering equation (Kajiya, J.T. (1986). The rendering equation. Computer Graphics (Proceedings of SIGGRAPH 1986) 20 (4), 143—150.)
  • 1987 Reyes algorithm (Cook, R.L. Carpenter, L. Catmull, E. (1987). The reyes image rendering architecture. Computer Graphics (Proceedings of SIGGRAPH 1987) 21 (4), 95—102.)
  • 1991 Hierarchical radiosity (Hanrahan, P. Salzman, D. Aupperle, L. (1991). A rapid hierarchical radiosity algorithm. Computer Graphics (Proceedings of SIGGRAPH 1991) 25 (4), 197—206.)
  • 1993 Tone mapping (Tumblin, J. Rushmeier, H.E. (1993). Tone reproduction for realistic computer generated images. IEEE Computer Graphics & Applications 13 (6), 42—48.)
  • 1993 Subsurface scattering (Hanrahan, P. Krueger, W. (1993). Reflection from layered surfaces due to subsurface scattering. Computer Graphics (Proceedings of SIGGRAPH 1993) 27 (), 165—174.)
  • 1995 Photon mapping (Jensen, H.J. Christensen, N.J. (1995). Photon maps in bidirectional monte carlo ray tracing of complex objects. Computers & Graphics 19 (2), 215—224.)
  • 1997 Metropolis light transport (Veach, E. Guibas, L. (1997). Metropolis light transport. Computer Graphics (Proceedings of SIGGRAPH 1997) 16 65—76.)

wiki2.red


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