Рендеринг

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Рендерінг за допомогою POV-Ray 3.6, квітень 2006 року
Зображення створене сполученням фотофону та візуалізованої моделі літака Іскандером Вігоа Пересом у 2012 році

Рéндеринг, комп'ютерна візуалізація (англ. rendering — візуалізація, вимальовування, подання) — в комп'ютерній графіці — це процес отримання зображення за моделлю з допомогою комп'ютерної програми. Тут модель — це опис тривимірних об'єктів (3D, 3Д) на визначеній мові програмування і у вигляді структури даних. Такий опис може містити геометричні дані, положення точки спостерігача, інформацію про освітлення. А зображення — це цифрове растрове зображення.

Слово рендеринг в Україні вживають для вказування процесу візуалізації, що виконується за допомогою програмного забезпечення, а рендер для позначення готового зображення, тобто як синоніми до словосполучень комп'ютерна візуалізація - комп'ютерний рендиринг, візуалізований об'єкт - рендер. (Вживання вище описаних слів зумовлене недостатньою кількістю україномовних статей за цією темою на противагу англомовним).

Комп'ютерна візуалізація — один з найбільш важливих розділів в комп'ютерній графіці, і на практиці він найтіснішим чином пов'язаний з іншими. Для візуалізації створюються самостійні програмні пакети - рендери, поряд із інтеграцією їх з програмами тривимірного моделювання, анімації, відеомонтажу, 2D малювання та фоторедагування.

Різновиди комп'ютерної візуалізації[ред.ред. код]

Різні методи візуалізації (починаючи від художнього стилю завершуючи ''фотореалізмом''), які застосовані для однієї 3D-сцени.[1]

Наступні різновиди комп'ютерної візуалізації створені через велику різноманітність сфери її застосувань:

  • фотореалістична візуалізація;
  • нефотореалістична візуалізація;

Ці різновиди отримуються за допомогою використання одного чи сокупності наступних методів:

Залежно від мети, розрізняють пре-рендерінг, як досить повільний процес візуалізації, що застосовується в основному при створенні відео, і рендеринг в режимі реального часу, застосовуваний у комп'ютерних іграх.

Особливості рендерингу[ред.ред. код]

Зображення — результат рендерингу може бути описане, як набір певних візуальних особливостей, що відповідають справжнім фізичним явищам, властивостям об'єкту. Дослідження та розробки у області рендерингу продовжують шукати найкращі шляхи для більш кращої та ефективної їх симуляції. Деякі з цих особливостей можуть бути прив'язані до конкретного алгоритму або методу, інші ж являти їх сукупність.

Методи рендеринга (візуалізації)[ред.ред. код]

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

Трасування всіх променів світла в сцені непрактично і займає занадто довгий час. Навіть трасування малої кількості променів, достатнього для того, щоб отримати зображення, займає надто багато часу, якщо не застосовується апроксимація.

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

  • Растеризація (англ. rasterization) спільно з методом сканування строк (англ. scanline rendering). Візуалізація проводиться проекціюванням об'єктів сцени на екран без розгляду ефекту перспективи відносно спостерігача.
  • Ray casting (метод кидання променів) (англ. ray casting). Сцена розглядається, як така, що спостережється з певної точки. З точки спостереження на об'єкти сцени направляються промені, за допомогою яких визначається колір пікселя на двовимірному екрані. При цьому промені припиняють своє поширення (на відміну від методу зворотного трасування), коли досягають будь-якого об'єкта сцени або її фону. Можливе використання будь-яких дуже простих способів додавання оптичних ефектів. Ефект перспективи отримується природним чином, якщо промені надходять під кутом, що залежить від положення пікселя на екрані і максимального кута об'єктиву камери.
  • Трасування променів (англ. ray tracing) схожа на метод кидання променів. З точки спостереження на об'єкти сцени направляються промені, за допомогою яких визначається колір пікселя на двовимірному екрані. Але при цьому промінь не припиняє своє поширення, а розділяється на три променя, кожен з яких вносить свій внесок в колір пікселя на двовимірному екрані: відбитий, тіньовий і заломлений. Кількість таких поділів на компоненти визначає глибину трасування та впливає на якість і фотореалістичність зображення. Завдяки своїм концептуальним особливостям, метод дозволяє отримати дуже фотореалістичні зображення, але при цьому він дуже ресурсозатратний, і процес візуалізації займає значні періоди часу.
  • Трасування шляху (англ. path tracing) містить схожий принцип трасування променів, що поширюються, однак цей метод є найбільш наближеним до фізичних законів поширення світла. Відповідно, він є найбільш ресурсозатратним.

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

Математичне обгрунтування[ред.ред. код]

Реалізація механізму рендеринга завжди грунтується на фізичній моделі. Обчислення, що виконуються, відносяться до тієї чи іншої фізичної або абстрактної моделі. Головні ідеї прості для розуміння, але складні для застосування. Як правило, кінцеве елегантне рішення або алгоритм більш складні і містять в собі комбінацію різних методів.[2]

Головне рівняння[ред.ред. код]

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


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), та коефіцієнту відбиття з даного кута. Об'єднуючи в одному рівнянні світло, яке надходить, з тим, що випромінюється, в одній точці, це рівняння формує опис усього світлового потоку в заданій системі.

Хронологія важливих створених засобів для візуалізації[ред.ред. код]

Програмне забезпечення для рендеринга — рендери (візуалізатори)[ред.ред. код]

Bised рендери[ред.ред. код]

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

Bised рендери технічно поділяються на: Bised рендери CPU - рендери, які для обчислення використовують тільки центральний процесор; Bised рендери GPU - рендири, як для обчислення використовують тільки графічний процесор - відеокарту.

  • 3Delight - запатентований RenderMan рендерер;
  • AIR;
  • Angel;
  • AQSIS - безкоштовний та відкритий з стандартом RenderMan;;
  • ART;
  • Artlantis (Render, Studio) - (CPU) нефотореалістичний двигун 3D рендерингу;
  • BMRT (Blue Moon Rendering Tools) - (CPU), (поширення зупинено);
  • Brazil R/S;
  • BusyRay;
  • Entropy - (CPU), (продаж зупинено);
  • finalRender;
  • Freestyle - вільний (ліцензія GPL) нефотореалістичний рушій 3D-вимальовування[31];
  • Gelato (розробка зупинена у зв'язку з покупкою NVIDIA, mental ray);
  • Holomatix Renditio (інтерактивний рейтрейсер);
  • Hypershot;
  • Kerkythea - безкоштовна рендерингова система, що підтримує трасування променів. Може інтегуватися з 3ds Max, Blender, SketchUp, та Silo. Kerkythea це автономний рендерер, що використовує фізично точні матеріали та освітлення;
  • Keyshot;
  • Mantra renderer - (CPU);
  • mental ray - (CPU);
  • Meridian;
  • Pixie - фотореалістичний рендерер з відкритим кодом;
  • POV-Ray;
  • RenderDotC;
  • RenderMan (PhotoRealistic RenderMan, Pixar's RenderMan или PRMan) - (CPU);
  • Substance Designer;
  • Sunflow - фотореалістичний рендерер, написаний на Java;
  • Turtle;
  • V-Ray - (CPU);
  • YafaRay - рендерер, розроблений в LGPL. Більше не підтримується.

Unbised рендери[ред.ред. код]

Unbised рендер - рендери "без налаштувань", які працюють в режимі реального часу (або наближені до цього режиму). В їх основу розробники закладають формули для розрахунку поводження денного світла та ін. максимально наближені до реальності (описують фізичні закони, які проходять в природі: генерування світла, падіння його на поверхню, заломлення, відображення, поглинання). Незважаючи на численні переваги, які дає фізична парадигма, час, необхідний для отримання якісного результату, зазвичай у багато разів перевищує аналогічний показник для не фізичних систем візуалізації (bised рендерів). Тому для зручної роботи слід використовувати багатоядерні і багатопроцесорні конфігурації компютерів.

Unbised рендер технічно поділяються на: Unbised рендери CPU - рендери, які для обчислення використовують тільки центральний процесор; Unbised рендери GPU - рендири, як для обчислення використовують тільки графічний процесор - відеокарту; Biased + unbised рендери CPU+GPU - рендери, які для обчислення використовують сукупно, як центральний процесор так і графічний.

Пакети тривимірного моделювання, що мають власні рендерери[ред.ред. код]

Всесвітньо відомі студії комп'ютерної візуалізації[ред.ред. код]

Див. також[ред.ред. код]

Примітки[ред.ред. код]

  1. The top image took about 1 second to render on a standard 2005 PC. The buttom image took about 3 minutes to render at that time.
  2. (2002) "Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low Frequency Lighting Environments". Computer Graphics (Proceedings of SIGGRAPH 2002), 527–536.
  3. Appel, A.(1968). "Some techniques for shading machine renderings of solids". Proceedings of the Spring Joint Computer Conference, 37–49.
  4. Bouknight W. J. A procedure for generation of three-dimensional half-tone computer graphics presentations // Communications of the ACM, 13 (1970) (9) С. 527–536. — DOI:10.1145/362736.362739.
  5. Gouraud H. Continuous shading of curved surfaces // IEEE Transactions on Computers, 20 (1971) (6) С. 623–629.
  6. а б Шаблон:Cite thesis
  7. Phong B-T Illumination for computer generated pictures // Communications of the ACM, 18 (1975) (6) С. 311–316. — DOI:10.1145/360825.360839.
  8. Texture and reflection in computer generated images // Communications of the ACM, 19 (1976) С. 542–546. — DOI:10.1145/360349.360353. — Шаблон:Citeseerx.
  9. Crow, F.C.(1977). "Shadow algorithms for computer graphics". Computer Graphics (Proceedings of SIGGRAPH 1977), 242–248.
  10. Williams, L.(1978). "Casting curved shadows on curved surfaces". Computer Graphics (Proceedings of SIGGRAPH 1978), 270–274. Шаблон:Citeseerx.
  11. Blinn, J.F.(1978). "Simulation of wrinkled surfaces". Computer Graphics (Proceedings of SIGGRAPH 1978), 286–292.
  12. (1980) "On visible surface generation by a priori tree structures". Computer Graphics (Proceedings of SIGGRAPH 1980), 124–133. Шаблон:Citeseerx.
  13. Whitted T. An improved illumination model for shaded display // Communications of the ACM, 23 (1980) (6) С. 343–349. — DOI:10.1145/358876.358882. — Шаблон:Citeseerx.
  14. (1981) "A reflectance model for computer graphics". Computer Graphics (Proceedings of SIGGRAPH 1981), 307–316. Шаблон:Citeseerx.
  15. Williams, L.(1983). "Pyramidal parametrics". Computer Graphics (Proceedings of SIGGRAPH 1983), 1-11. Шаблон:Citeseerx.
  16. Glassner A.S. Space subdivision for fast ray tracing // IEEE Computer Graphics & Applications, 4 (1984) (10) С. 15–22. — DOI:10.1109/mcg.1984.6429331.
  17. (1984) "Compositing digital images". Computer Graphics (Proceedings of SIGGRAPH 1984), 253–259.
  18. (1984) "Distributed ray tracing". Computer Graphics (Proceedings of SIGGRAPH 1984), 137–145.
  19. (1984) "Modeling the interaction of light between diffuse surfaces". Computer Graphics (Proceedings of SIGGRAPH 1984), 213–222. Шаблон:Citeseerx.
  20. (1985) "The hemi-cube: a radiosity solution for complex environments". Computer Graphics (Proceedings of SIGGRAPH 1985), 31–40. DOI:10.1145/325165.325171.
  21. Arvo, J.(1986). "Backward ray tracing". SIGGRAPH 1986 Developments in Ray Tracing course notes. Шаблон:Citeseerx.
  22. Kajiya, J.(1986). "The rendering equation". Computer Graphics (Proceedings of SIGGRAPH 1986), 143–150. Шаблон:Citeseerx.
  23. (1987) "The Reyes image rendering architecture". Computer Graphics (Proceedings of SIGGRAPH 1987), 95–102.
  24. (1991) "A rapid hierarchical radiosity algorithm". Computer Graphics (Proceedings of SIGGRAPH 1991), 197–206. Шаблон:Citeseerx.
  25. Tone reproduction for realistic computer generated images // IEEE Computer Graphics & Applications, 13 (1993) (6) С. 42–48. — DOI:10.1109/38.252554.
  26. (1993) "Reflection from layered surfaces due to subsurface scattering". Computer Graphics (Proceedings of SIGGRAPH 1993), 165–174. Шаблон:Citeseerx.
  27. Photon maps in bidirectional monte carlo ray tracing of complex objects // Computers & Graphics, 19 (1995) (2) С. 215–224. — DOI:10.1016/0097-8493(94)00145-o. — Шаблон:Citeseerx.
  28. (1997) "Metropolis light transport". Computer Graphics (Proceedings of SIGGRAPH 1997), 65-76. Шаблон:Citeseerx.
  29. Keller, A.(1997). "Instant Radiosity". Computer Graphics (Proceedings of SIGGRAPH 1997), 49-56. Шаблон:Citeseerx.
  30. (2002) "Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low Frequency Lighting Environments". Computer Graphics (Proceedings of SIGGRAPH 2002), 527–536.
  31. http://freestyle.sourceforge.net/ Сайт рушія вимальовування Freestyle(англ.)

Джерела та література[ред.ред. код]

  • Pharr, Matt; Humphreys, Greg (2004). Physically based rendering from theory to implementation. Amsterdam: Elsevier/Morgan Kaufmann. ISBN 0-12-553180-X. 
  • Shirley, Peter; Morley, R. Keith (2003). Realistic ray tracing (вид. 2). Natick, Mass.: AK Peters. ISBN 1-56881-198-5. 
  • Dutré, Philip; Bekaert, Philippe; Bala, Kavita (2003). Advanced global illumination (вид. [Online-Ausg.]). Natick, Mass.: A K Peters. ISBN 1-56881-177-2. 
  • Akenine-Möller, Tomas; Haines, Eric (2004). Real-time rendering (вид. 2). Natick, Mass.: AK Peters. ISBN 1-56881-182-9. 
  • Strothotte, Thomas; Schlechtweg, Stefan (2002). Non-photorealistic computer graphics modeling, rendering, and animation (вид. 2). San Francisco, CA: Morgan Kaufmann. ISBN 1-55860-787-0. 
  • Gooch, Bruce; Gooch, Amy (2001). Non-photorealistic rendering. Natick, Mass.: A K Peters. ISBN 1-56881-133-0. 
  • Jensen, Henrik Wann (2001). Realistic image synthesis using photon mapping (вид. [Nachdr.]). Natick, Mass.: AK Peters. ISBN 1-56881-147-0. 
  • Blinn, Jim (1996). Jim Blinn's corner : a trip down the graphics pipeline. San Francisco, Calif.: Morgan Kaufmann Publishers. ISBN 1-55860-387-5. 
  • Glassner, Andrew S. (2004). Principles of digital image synthesis (вид. 2). San Francisco, Calif.: Kaufmann. ISBN 1-55860-276-3. 
  • Cohen, Michael F.; Wallace, John R. (1998). Radiosity and realistic image synthesis (вид. 3). Boston, Mass. [u.a.]: Academic Press Professional. ISBN 0-12-178270-0. 
  • Foley, James D.; Van Dam; Feiner; Hughes (1990). Computer graphics : principles and practice (вид. 2). Reading, Mass.: Addison-Wesley. ISBN 0-201-12110-7. 
  • Andrew S. Glassner, ред. (1989). An introduction to ray tracing (вид. 3). London [u.a.]: Acad. Press. ISBN 0-12-286160-4. 
  • Description of the 'Radiance' system

Посилання[ред.ред. код]

  • SIGGRAPH Спеціальна група за інтересами ACMs у графіці - найбільша академічна та професійна асоціація.