Запитання з тегом «performance»

3
Коли обчислювальний шейдер більш ефективний, ніж піксельний шейдер для фільтрації зображень?
Операції фільтрації зображень, такі як розмиття, SSAO, цвітіння тощо, зазвичай виконуються за допомогою піксельних шейдерів і операцій "збирання", коли кожне виклик шейдера пікселів видає ряд текстурних даних для доступу до сусідніх значень пікселів та обчислює значення одного пікселя результат. Цей підхід має теоретичну неефективність у тому, що робиться багато зайвих …

2
Яка вартість зміни штату?
Передбачається, що програмісти мають досить гарне уявлення про вартість певних операцій: наприклад, вартість інструкції щодо процесора, вартість пропуску кешу L1, L2 або L3, вартість LHS. Що стосується графіки, я розумію, що я мало що уявляю, що вони є. Я маю на увазі, що якщо ми їх замовляємо за вартістю, зміни …

3
Продуктивність векторної графіки та растрової графіки
Іноді я використовую векторну графіку, просто тому, що в деяких випадках вони виглядають трохи приємніше, а в інших випадках я використовую растрову / растрову графіку. Мені було цікаво, чи є суттєві відмінності між цими двома варіантами?

1
Чому це умовне в моєму фрагменті шейдер настільки повільне?
Я встановив деякий FPS-вимірювальний код у WebGL (на основі цієї відповіді ТА ) і виявив деякі диваки з виконанням мого фрагмента шейдера. Код просто видає один квадратик (а точніше два трикутники) на полотні розміром 1024x1024, тому вся магія відбувається в шейдері фрагмента. Розглянемо цей простий шейдер (GLSL; вершина шейдера - …

3
Чому у нас є такі графічні рамки, як OpenGL та DirectX, коли ігри можуть просто малювати пікселі безпосередньо?
Ігри та інші графічно інтенсивні програми використовують такі рамки, як OpenGL та DirectX. Також вони вимагають таких функцій, як піксельний шейдер і DX12. Але навіщо нам потрібні всі ці рамки та функції графічного процесора, коли ми могли просто намалювати все піксель за пікселем? По-перше, гра повинна складатись таким чином, щоб …

3
Різниця між візуалізацією в OpenGL та програмному забезпеченні 3D-анімації
Завдяки OpenGL та іншим я можу зробити кілька дивовижно виглядаючих речей у реальному часі 60 FPS. Однак, якщо я спробую зробити відео з тієї самої сцени, скажімо, Майя, або 3ds Max, це займе МНОГО МНОГО довше, щоб вона відображала, навіть якщо це однакова роздільна здатність і FPS. Чому ці два …

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

1
Коли відключити перспективну правильну інтерполяцію (неперспективна)
У GLSL стандартна правильна інтерполяція атрибутів вершин є типовою настройкою - вимкнути її для конкретних атрибутів вершин можна за допомогою неперспективного класифікатора. Окрім випадків, коли в шейдерах після обробки я ніколи не бачив вимкнення правильної інтерполяції в перспективі - чи є інші випадки використання? Крім того, чи це навіть має …

1
Виконання циклу в шейдері
Мені цікаво, який найкращий спосіб інтегрувати функцію динамічного циклу в шейдер? По-перше, здається, що динамічні масиви неможливі. Отже, чи краще створити масив максимального розміру і лише заповнити його частину або визначити масиви із заданими розмірами? Тоді, який найкращий спосіб перебрати цей масив? Чи краще використовувати розкручений цикл або динамічний цикл …

1
Чому доступ до текстур набагато повільніше при обчисленні координати текстури в шейдері фрагмента?
Використовуючи текстури в GLSL, найкраще обчислити кінцеві координати текстури у вершинній шейдері та здати їх на шейдер фрагмента за допомогою varyings. Приклад з простим перевертанням координати y: // Vertex shader attribute vec2 texture; varying highp vec2 texCoord; // ... void main() { texCoord = vec2(texture.x, 1.0-texture.y); // ... } // …

1
Чому AMD, поставивши SSD на плату GPU, настільки скоротив затримку?
AMD нещодавно з'явилася в новинах з цікавою платою Radeon Pro з парою M2 SSD на ній. Як зазначають деякі детальніші сюжети (наприклад, тут або тут ), переваги в основному можуть накопичуватися не з високої пропускної здатності (M2 - лише на 4 смугах PCIe кожна, тому власний 16-смуговий роз'єм плати повинен …

2
Чи є в сучасних заповненнях і відкладених візуалізаціях оклюзійне відсічення?
Наприклад, незважаючи на те, що це поточний топ-графічний графічний процесор, GTX 980 має приголомшливий 72,1 гігапікселя / секунда, який, з перевіркою буфера назад і / або Z, здається майже смішним великим, можливо, навіть з роздільною здатністю 4k. Що стосується підрахунку багатокутників, сучасні графічні процесори можуть робити десятки до сотень мільйонів …

3
Чому об’єкти буферних вершин покращують продуктивність?
З мого основного розуміння, буферний об’єкт Vertex працює приблизно так (псевдокод): Зазвичай, якби хотіли сказати, намалювати квадрат, можна було б видавати команди для малювання рядків. line (0, 0) -> (1, 0) line (1, 0) -> (1, 1) line (1, 1) -> (0, 1) line (0, 1) -> (0, 0) Якщо …

2
Найефективніший спосіб організації даних вершин на сучасних графічних процесорах
Скажімо , у мене є модель , складена з вершин, кожен з яких position, normal, tangentі texcoordатрибутів, де трикутники зазначених індексів трійок. Якщо ми просто зосередимось на атрибутах вершини, я знаю про дві широкі стратегії: структура масивів та масив структур. Я також чув, що масив структур є кращим, оскільки він …

1
У чому полягає компроміс продуктивності між форвардом та відкладеною рендерінгом?
Передача вперед - це процес обчислення значення сяйва для фрагмента поверхні безпосередньо з вхідної геометрії та інформації про освітлення. Відкладене візуалізація розбиває цей процес на два етапи: спочатку створюють буфер простору на екрані, що містить властивості матеріалу (буфер геометрії або G-буфер), побудований за допомогою растеризації вхідної геометрії, а другий виробляє …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.