Рендеринг

процес отримання зображення за моделлю

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

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

Слово рендеринг в Україні вживають для вказування процесу візуалізації, що виконується за допомогою програмного забезпечення, а рендер — для позначення готового зображення, тобто як синоніми до словосполучень: комп'ютерна візуалізація — комп'ютерний рендеринг, візуалізований об'єкт — рендер[1].

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

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

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

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

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

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

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

Особливості рендерингу

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

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

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

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

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

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

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

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

Математичне обґрунтування

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

Головне рівняння

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

Неформальне тлумачення: кількість світлового випромінювання (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 — рендери, які для обчислення використовують сукупно, як центральний процесор так і графічний.

  • Arion Render — (GPU);
  • Arion — (CPU) ;
  • Arnold — (CPU);
  • Artlantis (Render, Studio) (з вибором в налаштуваннях активного двигуна візуалізації — Maxwell Render) — (CPU);
  • Brazil IR — (CPU);
  • Corona render — (CPU);
  • Cycles Render — (CPU);
  • FinalRender — (CPU);
  • Fryrender — (CPU);
  • Indigo — (CPU);
  • IndigoRT — (GPU);
  • iRay — (CPU);
  • Lumion — (GPU) real-time рендер; нефотореалістичний двигун 3D рендерингу;
  • LuxRender — (CPU);
  • Maxwell Render — (CPU);
  • Octane Render — (GPU);
  • Rendition — (CPU);
  • Shaderlight — (CPU);
  • Showcase — (CPU);
  • SmallLuxGPU — (GPU);
  • Thea Presto — (CPU+GPU);
  • Thea — (CPU+GPU);
  • Twinmotion — (GPU) real-time рендер; нефотореалістичний двигун 3D рендерингу;
  • VrayRT — (CPU, GPU).

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

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

Див. також

Примітки

Джерела

Література

Посилання

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