Я використовую XNA для своїх проектів, і на цих форумах я іноді бачу посилання на той факт, що заміна ефекту на сітку має відносно високу вартість, що мене дивує, оскільки я думав, що поміняти ефект просто випадок копіювання програми заміни шейдера до GPU разом з відповідними параметрами.
Мені було цікаво, чи хтось може пояснити, що саме коштує цього процесу? І ставити, якщо можливо, "відносно" в контекст?
Наприклад, скажіть, що я хотів використати короткий шейдер, щоб допомогти з вибором, я б:
- Змініть вплив на кожен об’єкт, обчисливши унікальний колір, щоб його ідентифікувати та надавши шейдеру.
- Намалюйте всі об'єкти до цілі візуалізації в пам'яті.
- Отримайте колір від цілі та використовуйте його для пошуку обраного об’єкта.
Яка частина загального часу, необхідного для завершення цього процесу, буде витрачена на обмін шейдерами? Мої інстинкти говорять, що повторне відображення сцени, незалежно від того, наскільки простий шейдер, буде на порядок повільнішим, ніж будь-яка інша частина процесу, тому чому все турбується про ефекти?