Рендеринг

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Фотореалистичное изображение, созданное 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) использует похожий принцип трассировки распространения лучей, однако этот метод является наиболее приближённым к физическим законам распространения света. Также является самым ресурсоёмким.

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

Математическое обоснование[править | править вики-текст]

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

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

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

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 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 0.1.1 (0.1.2 Beta 5a) 2.40.03 (3ds Max)

2.0 (Maya)
1.6 (SketchUp)
1.5 (Rhino)

Stage-2 2 4.01 1.61 1.91 1.0.9 v1.0-RC4 Kerkythea 2008 Echo 2.2
год выпуска 1987 1986 2005 2000 2002 2000 2003 2007 (?) 2006 (?) 2006 2011 2008 2003
библиотека материалов Нет 33 My mentalRay в разработке 2300+ 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.)