Абсурдная оптимизация: Падающий песок
https://www.youtube.com/watch?v=HrrJxkRlRfk
Видео по сути про использование компьют шейдеров при моделировании каких-то процессов клеточными автоматами. Клеточный автомат - это в целом достаточно забавный и удобный класс математических моделей. Если кто не изучал, это дискретные математические модели, где состояние каждой ячейки в сетке меняется по простым правилам, зависящим только от её соседей.
Достаточно простая концепция позволяет моделировать довольно сложные процессы. Основное преимущество по сути возможность строить сложные границы. Представим задачу что мы хотим посмотреть распространение дыма по локации. Логику этого можно базово задать клеточным автоматом, как и у автора в примере с песком. И что удобно, так как вычисления зависят только от ячейки и данных в её соседях, то такие вычисления довольно просто переносятся на GPU.
Кстати, если говорить про математическое моделирование каких-то процессов. Потому что автор там берёт какое-то выдуманное правило. Допустим взяв для примера задачу распространения тепла по материалу. Можно прикидывать такое грубо, что подходит для задач в играх. Просто каждый такт тепература усредняется между соседями с какой-то дельтой. И окажется, что это довольно близко к уравнению теплопроводности (Лапласа). И при правильном шаге, параметрах теплопроводности, размере ячеек сетки и небольшому усложнению уравнения среднего можно получить довольно точную математическую модель.
И вообще так работает со многими дискретными методами. Клеточные автоматы и тот же метод конечных элементов, при правильно заданных уравнениях и достаточно мелкой дискретизации (мелкая сетка и так далее) дают значения близкие к нашим математическим представлениям об устройстве реальности. Этим они и прикольны. И благодаря дискретности и отсуствию сложной условной логики, как и необходимости знать много информации, вычисления на эту тему довольно легко переносятся на GPU. Хотя конечно сейчас есть и более современные и модные методы, вроде того на чём базируется Nvidia Flux (сопоставление потоков). Но что важно понимать про нейросетевые методы. Просто человечество условно когда-то решило: "Память не проблема, у нас её много. Зачем нам что-то решать и моделировать в реальном времени, если мы можем просто подставлять ответы? Пусть грубо и не супер точно, но для продакшена годится."
#новости
Post #1817
1.4K