У моєму полі (VFX, який охоплює такі речі, як відстеження шляху, комп’ютерна анімація, моделювання частинок, динаміка флюїду, обробка зображень тощо), алгоритмічна складність є основоположною. Ні в якому разі нічого, що працює в гірший, ніж лінійно-емічний час, може сподіватися завершити в будь-який розумний час на входах, які зазвичай досягають мільйонів вершин, багатокутників, вокселів, частинок, текселів, особливо коли багато з цих речей потрібно виконати багато разів в секунду, щоб забезпечити інтерактивний зворотний зв'язок у режимі реального часу.
З урахуванням сказаного, не так сильно робиться акцент на алгоритмічній складності дискусій, як правило, серед колег, можливо, це дещо сприймається як належне і досить "рудиментарно". Як правило, передбачається, що якщо ви пишете трекер шляху, що він буде працювати в логарифмічний час або краще, і що структури даних, такі як ієрархії обмежувального обсягу, знайомі і відносно тривіальні для впровадження читача. У мене навіть був досвідчений колега, який постійно казав, що багатопотоковість та SIMD важливіші за алгоритми, і я не думаю, що він мав на увазі, що в тому сенсі, що ви можете розраховувати на те, щоб вийти набагато більше, ніж паралелізувати сортування бульбашок. Я думаю, що він сказав, що, оскільки він сприйняв це як належне, що ми застосуємо розумні алгоритми,
У цей час часто велика увага приділяється використанню багатьох з цих звичних алгоритмів і змушує їх краще використовувати основні характеристики обладнання, такі як кеш процесора, регістри та інструкції SIMD, графічні процесори та декілька ядер. Наприклад, Intel придумала новий спосіб взяти знайомий старий BVH і придумати концепцію "пакетів променів", в основному випробовуючи декілька когерентних променів одночасно з рекурсивним різновидом обходу дерев (це може здатися таким) Буду зі своєю часткою складності та накладних витрат, за винятком того, що це більше, ніж складається з того, що ці промені тепер можуть бути протестовані одночасно для перетину променів / AABB та пересічень променів / трикутників через інструкції та регістри SIMD).
Аналогічна річ з подібно поділом Catmull-Clark, який є дуже рудиментарним матеріалом у комп'ютерній графіці. Але сьогодні конкурентоспроможними, гарячими та надзвичайно ефективними є реалізація GPU, яка наближає підрозділ CC за допомогою Gregory Patches, популяризованого Чарльзом Лупом та пізніше прийнятого Pixar. Більш прямолінійна реалізація процесора зараз застаріла не обов'язково тому, що вона витіснилася з точки зору алгоритмічної складності, а тому, що її витіснила те, що добре грає з GPU.
І зазвичай це є великою проблемою в наші дні - це не придумати найкращий алгоритм таким чином, який порівняно не залежить від основних характеристик обладнання. Насправді я отримав ногу в галузі, створивши нову структуру прискорень, яка значно прискорила виявлення зіткнень для анімації персонажів та інших м'яких тіл у 90-х, використовуючи ієрархічний підхід сегментації на відміну від просторового індексу, який отримав мені багато пропозиції роботи, але в наші дні це вже не так вражає, оскільки я опублікував це задовго до того, як у нас були такі вражаючі кешові процесори, численні ядра та програмовані графічні процесори, і що ні, і сьогодні я використовую зовсім інший підхід внаслідок значних змін у основне обладнання.