Це часто трапляється на графічному процесорі, але вигідні і для обох, і вам вирішити, який буде найкращим для вас.
Здійснення маніпуляції на GPU означає, що вам потрібно надіслати дані сітки лише один раз, тоді ви можете просто надіслати матричні перетворення, щоб їх деформувати. Це чудово, оскільки це значно скорочує пропускну здатність, необхідну між CPU-> GPU. Це також означає, що ви можете завантажити лише одну копію сітки в GPU і застосувати перетворення для багатьох різних екземплярів мережі. Однак зіткнення "сітчастих точок" складніше. Оскільки перетворення здійснюються на графічному процесорі, у вас немає їх доступних для тестування на процесорі.
Виконання маніпуляцій на процесорі означає, що у вас є доступ до перетвореної сітки. Ви можете отримати доступ до всього, що потрібно про це знати. Однак це означає, що вам потрібно завантажувати всю цю сітку в GPU кожен кадр. Це також означає, що вам доведеться завантажувати перетворену сітку для кожного примірника цієї сітки. Підводячи підсумок, ось десь вичерпний список плюсів і мінусів.
Плюси для GPU
- Завантажте дані сітки один раз
- Перетворіть його для кількох примірників
- Потрібно лише надіслати матричні перетворення
- Графічний процесор дуже добре паралелізує такі речі
Мінуси для GPU
- Трансформовані сітки недоступні для тестування на процесорі
Плюси для процесора
- Трансформовані сітки доступні для тестів на зіткнення та будь-що інше, що потрібно.
Мінуси для процесора
- Потрібно завантажити всю трансформовану сітку кожного кадру
- Потрібно завантажити цілу сітку для кожного примірника сітки
Однак існують способи подолати мінуси для GPU.
- Не майте точних зіткнень із сіткою . Використовуйте щось "достатньо близько", як обмежувальний ящик для всієї сітки або мати обмежувальні коробки для кожної кістки сітки. Нижче використовується для перетворень графічного процесора для сітки, а для процесора перетворення для обмежувальних вікон з вирівнюванням по осі, які представляють сітку. Ви можете отримати ще більш точні межі, використовуючи не AABB.
- Перетворіть копію сітки на центральний процесор, якщо і тільки якщо потрібні точні зіткнення сітки . Після того, як зіткнення обмежувальної коробки повернеться правдою, перетворіть сітку на відповідність перетворенням на графічному процесорі, а потім перевірте зіткнення проти цього, щоб отримати більш точні дані про зіткнення.
Я вважаю, що ви можете зрозуміти, чому частіше трансформуватися в GPU