Паралельний рендеринг (або розподіленого рендеринга) - є застосування паралельного програмування в розрахунковій області комп'ютерної графіки. Рендеринга графіки може зажадати великих обчислювальних ресурсів для складних сцен, які виникають в науковій візуалізації, медичної візуалізації, САПР, Система автоматизованого проектування і розрахунку і віртуальної реальності. Візуалізація є надзвичайна паралельність робочого навантаження в декількох доменах (наприклад, пікселів, об'єкти, кадри) і, таким чином, є предметом численних досліджень.
Відомості
У комп'ютерній графіці, візуалізації можна визначити як процес перетворення моделі в зображень за допомогою комп'ютерних програм.Зображення являє собою цифрове зображення або зображення растрової графіки. Модель являє собою абстрактне опис Колекція геометрично певних об'єктів в 3D-просторі, який буде містити таку інформацію,як геометрія, точки зору, текстури, освітлення і затінення і т.д. Операція рендеринга проектів графічні об'єкти в моделі в 2D просторі зображень, обчислює інтенсивності кольору окремих пікселів зображення, і, нарешті, генерує зображення. (Crockett, 1997)
Для складних об'єктів або зображень з високою якістю, процес візуалізації вимагає масивних обчислювальні ресурси. Наприклад, надання медичної візуалізації, із поверхні покоління, а також деякі програми CAD може знадобитися мільйони чи мільярди операцій з плаваючою точкою і цілочисельні операції для кожного зображення. Деякі методи створення зображення, такі як трасування променів, 3D-текстур і т.д., працюють дуже повільно в простому машини. Для того, щоб отримати необхідну обчислювальну потужність, єдиним практичним рішенням є використання декількох блоків обробки щоб прискорити процес рендеринга. Ця технологія відома як паралельний рендеринг.
Паралельний рендеринг може значно підвищити продуктивність комп'ютерних графічних програм. В паралельний рендеринг, робота розділена, поширюється на комп'ютери і виконуються одночасно в паралельні один одному. Розглядаючи застосування променевих лиття, без паралельно, промені будуть спрямовані по одному, щоб всі пікселі в поданні усіченого; якщо використовується паралельний рендеринг, весь усічений можна розділити в ряді частин; ми можемо запустити той же число процесів, щоб посилати промені паралельно різні частини.
Скупчення машин, як правило, використовуються для виконання такого завдання. З розпаралелювання, високоякісне зображення високої складності можна легко отримати, і високе Ефективність обробки зображень може бути досягнуто.
Паралельний рендеринг широко прийнятий кожен метод формування зображення в області комп'ютерної графіки. Ці методи включають в себе поверхню і полігон рендеринг, рендеринг місцевості, обсяг рендеринга, трасування променів і излучательности. Типи паралелізму, що використовуються в процесі візуалізації різні; функціональний паралелізм, паралелізм даних, і тимчасової паралелізм є три основних типи; Крім того, вони можуть бути об'єднані в різні типи гібридної системи.
Сортування-перше, відсортуйте середнього, і начебто-останні є найбільш обговорювані алгоритми паралельних рендеринга. Це Класифікація заснована на точці в конвеєрі рендеринга, при якому об'єкт-простір для imagespace відображення відбувається. Є багато паралельних програм і структур рендеринга, такі як хром, Еквалайзер, і OpenSG т.д.
Види Паралелізму
Кілька різних видів паралельності можуть бути використані в процесі візуалізації на різних рівнях. Вони включають в себе функціональний паралелізм, паралелізм даних і тимчасової паралелізм. Ці основні типи можуть додатково бути об'єднані в гібридних системах. Функціональний паралелізм Процес рендеринга може бути розділений на безліч різних функцій, але, як правило, складається з двох частин: обробка Геометрія: моделювання трансформації, задня поверхня вибракування, відсікання, освітлення, і вид перетворення. растеризации: скан-перетворення, затінення, г-буфера порівняння і магазин, і видимість визначення.
У разі функціонального паралелізму, ці функції застосовуються послідовно до окремих елементів даних. Функції призначаються різні блоки обробки; як тільки блок обробки завершує свою роботу на елемент даних, він посилає елемент даних на наступний блок і отримує новий предмет від його вгору за течією сусід. Функціональний паралелізм може прискорити розрахунки критичних, після того, як конвеєр рендеринга заповнений; Ступінь паралельності досягнутого пропорційна кількості функціональних блоків. Функціональний паралелізм підходить для полігонів і візуалізації поверхні додатків. ми годуємо 3D-геометричні об'єкти на початку трубопроводу, а також отримати кінцеві значення пікселів від кінця трубопроводу. Існують два обмеження функціонального паралелізму; по-перше, загальна швидкість трубопроводу обмежується найповільнішої функції блоку, уникаючи вузьких місць є одним з найважливіших дизайн питання про функціональний паралелізм. Іншим недоліком функціонального паралелізму є те, що доступно Паралелізм залежить від числа ступенів в трубопроводі; через кількість функцій ділиться вельми обмежений, функціональний паралелізм не в змозі виробляти дуже високу продуктивність. (Crockett, 1997; Girkar, 1992; Раджагопалан, 2005)
Паралелізм Даних На відміну від функціонального паралелізму, паралелізм даних фокусується на поширенні даних по Графічні дані розділені на кілька потоків; потім кілька елементів даних можуть бути оброблятися одночасно на різних блоків обробки, і результати об'єднуються, щоб створити остаточне зображення. (Хілліс, 1986) Є два типи паралелізму даних: об'єкт паралелізм і паралелізм зображення. об'єкт паралелізм відбувається на стадії обробки геометрії трубопроводу рендеринга; паралелізм зображення відбувається на більш пізній стадії растеризации конвеєра рендеринга. паралелізм даних може Перевага декількох процесорів, а також надає себе масштабованих реалізацій; більшість з Системи графічного програмного забезпечення взяли цей підхід. Щоб уникнути вузьких місць, як правило, об'єкт і зображення паралельність повинні бути включені разом; Однак отримання належного балансу між ними важко, так як робочі навантаження на кожному стадія залежить від багатьох факторів, таких як SCE.
Тимчасовий паралелізм Тимчасовий паралелізм зазвичай прийнятої анімації додатків. У такого роду застосуваннях велика кількість зображень генеруються для подальшого відтворення; паралелізм виходить розкладаючи загальну задачу візуалізації в тимчасовій області; і процесори присвоюється кількість кадрів для візуалізації, а також дані, необхідні для виробництва цих кадрів. Кілька типів паралельності можуть бути включені в єдину систему для формування гібридного паралельність. Наприклад, функціональні і дані паралельності можуть бути об'єднані шляхом реплікації всіх або частини з рендеринга трубопроводу. Temporal паралелізм можна також комбінувати з функціональними або даними паралелізм. За допомогою гібридного підходу, системи можуть виробляти більш високі характеристики.
Огляд паралельних алгоритмів рендеринга У графічної візуалізації, деякі проблеми можуть бути распараллелен тривіальним, вимагаючи мало або взагалі не міжпроцесорних комунікації, а також не сприяє ніяких значних обчислювальних накладних витрат. Такі алгоритми називаються неінтерактивний паралельно рендеринга або приголомшливо паралельно рендеринга. Алгорітмов рендеринга експлуататорські временного паралелізму данной категорії. У таких додатках, кадри розподіляються серед доступних процесорів; один кадр може бути винесено на одному процесорі, і кілька кадрів можуть бути оброблені одночасно. Rendering методи, засновані на променевому лиття може також бути реалізований у вигляді смущающе паралель в зв'язку з тим, що значення пікселів, обчисленої стрілянина промені від кожного пікселя в сцену. Якщо кожен процесор має швидкий доступ до всього об'єкти, то кожен промінь може бути оброблений незалежно один від одного, без межпроцессорного зв'язку вимагається. У категорії інтерактивного паралельного рендеринга, існують різні алгоритми розподілу надання роботи. Наприклад, сортування перший рендеринг розкладає кінцеве зображення; кожен Процесор надає 2D плитки зображення. Сортування-рендеринга останній розпадається примітиви через всі процесори, і рекомбинирует частково відрендерених кадрів. перерозподіляє Сортування середнього рендеринга надаються примітиви в середині конвеєра рендеринга. Pixel розкладання розділити пікселі кінцевого виду рівномірно, або шляхом ділення повних пікселів або суб-пікселів; і немає сортування надавані примітивів відбувається, так як всі ресурси рендеринга надають більш-менш ту ж точку зору. DPlex рендеринга поширює повний, що чергуються кадрів для окремого процесора. (Кокс, 1995; Алгоритми інтерактивні паралельні рендеринга, як правило, ввести накладні витрати, які викликані деякими або все з наступних причин: зв'язку між завданнями або процесорів; затримки через нерівномірні робочі навантаження; додаткові або надлишкові обчислення; підвищені вимоги до зберігання для скопійованих чи допоміжних структур даних. У паралельних алгоритмів візуалізації, дані зображення, і об'єкт розділені серед доступних процесори; і рендеринга можна розглядати як відображення з 3D простору об'єктів в 2D-зображення простір. Це відображення не є фіксованим, а залежить від перетворень моделювання і перегляду параметри. Коли обидва дані об'єкта і зображення розділені між процесорами, а потім в якийсь момент в конвеєрі рендеринга, дані повинні бути передані між процесорами; кожен процесор повинен передавати дані на і отримувати дані від інших процесорів. управління цим спілкування є одним з основних питань для паралельних алгоритмів рендеринга. (Crockett, 1997)
Паралельний рендеринг – Проблема сортування Як вже говорилося раніше конвеєр рендеринга складається з обробки геометрії і растеризації. В етап обробки геометрії, паралельність досягається шляхом присвоєння кожному процесору підмножина об'єкти в сцені. На етапі растеризації, кожен процесор призначається частина розрахунки пікселя. Рендеринга можна розглядати як визначення того, як кожен об'єкт впливає на кожен пікселів. Так як моделювання та перегляд перетворення є довільними, об'єкт може впасти в будь-якому місці на екрані. Тому ми можемо розглядати як рендеринг завдання сортування, тобто сортування об'єктів до екран. (Молнар, 1994; Стівен Мольнар 1994) Найчастіше, сортування відбувається в трьох основних місцях розташування конвеєра рендеринга. Місце сортування визначає алгоритми паралельних рендеринга; якщо це має місце під час обробка геометрії, алгоритм називається свого роду першим, який перерозподіляє сирі об'єкти до їх Параметри екрану простору відомі; якщо це відбувається між обробкою геометрії і растеризации, алгоритм сортування, який перерозподіляє середній екран-космічних об'єктів; якщо він приймає Місце під час растеризації, алгоритми сортування є останнім, який перерозподілити пікселі. Перше сортування Алгоритм сортування першого розподіляє графічні об'єкти для процесорів під час геометрії етап обробки трубопроводу рендеринга.
Перший сортувальний алгоритм включає в себе наступні кроки Об'єкти призначаються процесори довільно. Процесор обчислює екранний простір обмежувальної рамки об'єктів, покладених на нього і Визначає їх відповідні плитки в просторі екрану. Об'єкти в поширенні відповідних процесорів. Виконайте інші розрахунки геометрії обробки та растеризації для об'єктів.