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


13

На відміну від процесора чи програмного забезпечення, я припускаю?

Як правило, не всі поточні візуалізації базуються на GPU, бачачи, як ви використовуєте OpenGL або Direct X?

Може хтось тут мені дасть трохи інформації, не можу знайти відповіді?

Відповіді:


7

Як ви вже чітко знаєте, що таке GPU-рендерінг, дозвольте мені відповісти, що ви, здається, запитуєте.

Традиційно апаратне відображення спричиняє стигму як дуже складну. Це значною мірою було зумовлено дизайном інтерфейсів прикладного програмування (API), які не були добре орієнтовані на приховування складності; тобто крива навчання була крутою. Частково це також пояснюється розумінням того, що запис 3D-додатків - для яких ці API орієнтовані - набагато складніше, ніж написання двовимірних. Щодо складності інтерфейсу, я маю на увазі такі інтерфейси, як OpenGL та DirectX. Щодо 3D vs 2D, я маю на увазі математику та геометрію, яка входить у побудову 3D-сцен, порівняно з простотою, з якою нетренований розум може наблизитись до 2D-задач.

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

Отже візуалізація програмного забезпечення та 2D-рендерінг були хорошими точками входу та фокусом для тих, хто був новаком у графіці та / або хотів створити продукт, де візуалізація не забирала занадто багато часу, доступного для проекту. Принаймні, що стосується 2D, це все ще стосується; Технологія значною мірою подолала розрив у залученні 2D-рендерінгу до GPU.


20

Тут є кілька справді хороших відповідей, тому просто доповнити їх.

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

Що стосується обладнання, ви, як правило, обмежені можливостями самого обладнання, хоча OpenGL для одного здатний програмувати емуляцію багатьох речей, які можуть не існувати в апаратному забезпеченні. Це означає, що якщо ви спробуєте використовувати Feature X, але апаратне забезпечення його не підтримує, відбудеться одне з двох: або ви перейдете до емуляції програмного забезпечення (типовий сценарій OpenGL), або не отримаєте використовувати його взагалі (типовий сценарій D3D).

Завдяки візуалізації програмного забезпечення ви можете самостійно написати код. Ви можете маніпулювати речами і мати повний контроль над тим, що відбувається до рівня пікселів. Щоб навести приклад вибуху з минулого, Quake мав піксельні шейдери, впроваджені в програмне забезпечення ще в 1996 році, в той час, коли 3D-карти (тоді їх ще не називали "GPU") ледве розсипали кілька десятків текстурованих трикутників.

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

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

Програмне забезпечення може виставляти різні парадигми візуалізації. Поточна апаратура дуже зосереджена навколо парадигми трикутника / вершини / фрагмента / растерізації; це справа вибору однієї речі та оптимізації її, поки вона не кричить на милість. Графічні процесори все ще є поганим вибором, наприклад, для відстеження променів, що частіше реалізується в програмному забезпеченні.

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


8
+1 для "рендеринга програмного забезпечення насправді може бути більш здатним, ніж апаратне надання, не менше".
concept3d

10

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

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


2

Я думаю, це справді гарне питання.

Що я можу собі уявити:

  • VRAM обмежений, ніж загальна оперативна пам'ять. У випадку надання GPU - кожна текстура є більшою проблемою. Ви можете зберігати в середньому приблизно 4 - 8 разів більше даних в оперативній пам'яті, ніж VRAM. Звичайно, цей сценарій передбачає, що не існує системи, яка б відповідала за звільнення / виштовхування невикористаних / необхідних текстур з / до оперативної пам’яті / VRAM

  • З точки зору багатопотоковості, це набагато простіше, коли ви працюєте з візуалізацією програмного забезпечення - не потрібно ділитися контекстами

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

Однак рендерінг за допомогою OGL / D3D дає набагато більше продуктивності та можливостей. Шейдери можуть робити справді дивовижні речі, що майже неможливо за допомогою рендерінгу програмного забезпечення.

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

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


1
Для запуску шейдерів вам не потрібно апаратне прискорення. OS X 10.9 поставляється з повноцінною реалізацією програмного забезпечення GL4. Продуктивність неймовірно хороша для візуалізації програмного забезпечення; Справа не в тому, що ви можете реально грати в складні ігри (якщо бути справедливими, також це не графічні процесори Apple, які поставляють свої продукти), але це набагато практичніше, ніж використовувати щось на зразок Direct3D еталонного растерізатора. Це фактично те, що ви можете доставити робоче програмне забезпечення, використовуючи.
Андон М. Коулман

@ AndonM.Coleman Не всі використовують Apple, і я не знаю програмного забезпечення, яке підтримує шейдери для Linux та Windows.
luke1985

1
Але це не було моєю суттю. Існує реалізація OpenGL, де повністю функціональні шейдери повністю працюють на процесорі. Те, що Apple є розробником, багато в чому не має значення. Ваша відповідь створила враження, що ви думаєте, що вам потрібно мати GPU для запуску сучасних шейдерів у OpenGL.
Андон М. Коулман

@ AndonM.Coleman І це майже правильно, тому що у 80% випадків ви повинні.
luke1985

2
Шейдери можна легко реалізувати за допомогою програмного рендерингу, в інфакті навіть Tomb Raider 1 і Quake 1 були піксельні шейдери. Це якраз навпаки, процесор дає вам більше контролю, ніж обмежувальний вершина / фрагмент трубопроводу поточних GPU.
lama12345
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.