Рендеринг
Ре́ндеринг (англ. rendering — «визуализация») — термин в компьютерной графике, обозначающий процесс получения изображения по модели с помощью компьютерной программы.
Здесь модель — это описание любых объектов или явлений на строго определённом языке или в виде структуры данных. Такое описание может содержать геометрические данные, положение точки наблюдателя, информацию об освещении, степени наличия какого-то вещества, напряжённость физического поля и пр.
Примером визуализации могут служить радарные космические снимки, представляющие в виде изображения данные, полученные посредством радиолокационного сканирования поверхности космического тела, в диапазоне электро-магнитных волн, невидимых человеческим глазом.
Часто в компьютерной графике (художественной и технической) под рендерингом (3D-рендерингом) понимают создание плоского изображения (картинки) по разработанной 3D-сцене. Изображение — это цифровое растровое изображение. Синонимом в данном контексте является Визуализация.
Визуализация — один из наиболее важных разделов в компьютерной графике, и на практике он тесным образом связан с остальными. Обычно программные пакеты трехмерного моделирования и анимации включают в себя также и функцию рендеринга. Существуют отдельные программные продукты, выполняющие рендеринг.
В зависимости от цели, различают пре-рендеринг, как достаточно медленный процесс визуализации, применяющийся в основном при создании видео, и рендеринг в режиме реального времени, применяемый в компьютерных играх. Последний часто использует 3D-ускорители.
Компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).
Содержание |
Методы рендеринга (визуализации)[править]
На текущий момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения.
Трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерно много времени, если не применяется аппроксимация (семплирование).
Вследствие этого, было разработано четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:
- Растеризация (англ. rasterization) совместно с методом сканирования строк (англ. scanline rendering). Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя.
- Ray casting (рейкастинг) (англ. ray casting). Сцена рассматривается, как наблюдаемая из определённой точки. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. При этом лучи прекращают своё распространение (в отличие от метода обратного трассирования), когда достигают любого объекта сцены либо её фона. Возможно использование каких-либо очень простых способов добавления оптических эффектов. Эффект перспективы получается естественным образом в случае, когда бросаемые лучи запускаются под углом, зависящим от положения пикселя на экране и максимального угла обзора камеры.
- Трассировка лучей (англ. ray tracing) похожа на метод бросания лучей. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три компонента, луча, каждый из которых вносит свой вклад в цвет пиксела на двумерном экране: отражённый, теневой и преломленный. Количество таких разделений на компоненты определяет глубину трассирования и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, но при этом он очень ресурсоёмкий, и процесс визуализации занимает значительные периоды времени.
- Трассировка пути (англ. path tracing) содержит похожий принцип трассировки распространения лучей, однако этот метод является самым приближенным к физическим законам распространения света. Также является самым ресурсоёмким.
Передовое программное обеспечение обычно совмещает в себе несколько техник, чтобы получить достаточно качественное и фотореалистичное изображение за приемлемые затраты вычислительных ресурсов.
Математическое обоснование[править]
Реализация механизма рендеринга всегда основывается на физической модели. Производимые вычисления относятся к той или иной физической или абстрактной модели. Основные идеи просты для понимания, но сложны для применения. Как правило, конечное элегантное решение или алгоритм более сложны и содержат в себе комбинацию разных техник.
Основное уравнение[править]
Ключом к теоретическому обоснованию моделей рендеринга служит уравнение рендеринга. Оно является наиболее полным формальным описанием части рендеринга, не относящейся к восприятию конечного изображения. Все модели представляют собой какое-то приближённое решение этого уравнения.
Неформальное толкование таково: Количество светового излучения (Lo), исходящего из определённой точки в определённом направлении есть собственное излучение и отражённое излучение. Отражённое излучение есть сумма по всем направлениям приходящего излучения (Li), умноженного на коэффициент отражения из данного угла. Объединяя в одном уравнении приходящий свет с исходящим в одной точке, это уравнение составляет описание всего светового потока в заданной системе.
Программное обеспечение для рендеринга — рендеры (визуализаторы)[править]
- 3Delight
- AIR
- ART
- AQSIS
- Angel
- BMRT (Blue Moon Rendering Tools) (распространение прекращено)
- Brazil R/S
- BusyRay
- Entropy (продажи прекращены)
- finalRender
- Fryrender
- Gelato (разработка прекращена в связи с покупкой NVIDIA, mental ray)
- Holomatix Renditio (интерактивный рейтрейсер)
- Hypershot
- Indigo Renderer
- Kerkythea
- Keyshot
- mental ray
- LuxRender
- Mantra renderer
- Maxwell Render
- Meridian
- POV-Ray
- Pixie
- RenderDotC
- RenderMan (PhotoRealistic RenderMan, Pixar’s RenderMan или PRMan)
- Sunflow
- Turtle
- V-Ray
- YafaRay
- Octane Render
- Arion Renderer
-
- Рендереры, работающие в реальном (или почти в реальном) времени.
-
- Пакеты трёхмерного моделирования, имеющие собственные рендереры
- Autodesk 3ds Max (Scanline)
- Autodesk Maya (Software Hardware, Vector)
- Blender
- NewTek LightWave 3D
- Maxon Cinema 4D (Advanced Render)
- SketchUp
- Daz3D Bryce
- Luxology Modo
- e-on Software Vue
- SideFX Houdini
- Terragen, Terragen 2
Таблица сравнения свойств рендеров[править]
| 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, Mac OS X | Microsoft Windows, Linux, Mac OS X | Microsoft Windows, Linux, Mac OS X | ||||||||||
| физическая корректность модели | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Да | Да | Да | Да | ||
| 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.10 | 2.2 | 2.40.03 (3ds Max) 2.0 (Maya) |
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 | Да | Да | Да | ||||||||||
| официальный сайт | vray.com chaosgroup.com |
MaxwellRender.com | Fryrender.com | IndigoRenderer.com | LuxRender.net | kerkythea.net | YafaRay.org | ||||||
| страна производитель | США | Германия | США | Болгария | Германия | США | Швеция | Испания | Испания | ||||
| стоимость $ | 3500 | 195 | бесплатное | 800-1385 (в зависимости от 3D-пакета) |
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 |
См. также[править]
- Ray tracing
- Шейдер
- Алгоритмы использующие z-буфер и Z-буферизация
- Нефотореалистичный рендеринг
- Алгоритм художника
- Алгоритмы построчного сканирования like Reyes
- Алгоритмы глобального освещения
- Излучательность
- Отсечение
- Текст как изображение
- Рендер-ферма
Хронология важнейших публикаций[править]
- 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.)
| Системы рендеринга трёхмерной графики | |
|---|---|
| Рендеринг 'On Demand' |
3Delight • AIR • ART • AQSIS • Angel • BMRT • Brazil R/S • BusyRay • Entropy • finalRender • Fryrender • Gelato • Holomatix Renditio • Hypershot • Indigo Renderer • Kerkythea • Keyshot • mental ray • LuxRender • Maxwell Render • Meridian • POV-Ray • Pixie • RenderDotC • RenderMan • Sunflow • Turtle • V-Ray • YafaRay • Octane Render • Arion Renderer |
| Рендеринг 'реального времени' |
VrayRT • FinalRender • iray • Shaderlight • Showcase • Rendition • Brazil IR |
| Рендеринг | |


