Рендеринг

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

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

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

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

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

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


  • альбедо (англ. en:shading) — визначає, як колір і яскравість поверхні змінюється в залежності від освітлення
  • текстурна карта (англ. texture-mapping) — спосіб нанесення на поверхню подробиці
  • карта нерівностей (англ. bump-mapping) — метод імітації дрібних нерівностей на поверхні
  • ефект туману (англ. en:distance fog) — як світло проходить через нечисту атмосферу або туман
  • Тіні (англ. en:shadow) — ефект перешкод для світла
  • м'які тіні (англ. en:soft shadows) — ефект перешкод, що частково приховують джерела світла
  • відображення (англ. reflection) — дзеркальне або глянцеве відображення
  • прозорість (оптика)(англ. en:transparency (optics)), прозорість (графіка)(англ. en:transparency (graphic)) або непрозорість(англ. opacity) — визначає передачу світла крізь тверді неповністю прозорі об'єкти
  • прозорість (англ. en:translucency) — передача світла крізь прозорі об'єкти
  • заломлення (англ. en:refraction) — вигин світла, пов'язаний з коєфіціентом заломлення матеріалів
  • дифракція (англ. en:diffraction) — визначає вигин, поширення та інтерференцію світла, що проходить близ границі об'єкта, або крізь вузьку діафрагму
  • непряме освітлення (англ. indirect illumination) — визначає кількість світла, відбитого від інших поверхонь, а не безпосередньо від джерела світла (також відоме як глобальне освітлення)
  • каустика (форма непрямого освітлення) (англ. caustics) — відбиття світла від блискучого об'єкта, або фокусування світла через прозорий об'єкт, для отримання яскравих відблисків на інший об'єкт
  • Глибина різкості (англ. en:depth of field) — об'єкти здаються розмитими або не в фокусі, якщо вони знаходяться занадто далеко попереду або позаду об'єкта у фокусі
  • en:Motion Blur — об'єкти здаються розмитими через високу швидкість руху об'єкта або камери
  • не-фотореалістична візуалізація (англ. en:non-photorealistic rendering) — рендеринг сцен в художньому стилі, призначена, щоб виглядати як картина або малюнок

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

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

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

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

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

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

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

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

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

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


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

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


Рендерери, що працюють у режимі реального часу (або наближені до цього режиму).[ред.ред. код]

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

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

  1. (2002) "Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low Frequency Lighting Environments". Computer Graphics (Proceedings of SIGGRAPH 2002), 527–536.