Задать вопрос
@Ksushqa
Unity developer

Можно ли организовать мат. вычисления ч/з шейдер и передать рез-т в скрипт (Unity)?

Привет!
Подскажите, можно ли в Unity передать долгие разовые мат. вычисления на графический процессор?
Простите за нубский вопрос, плохо понимаю, как это работает.
  • Вопрос задан
  • 182 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Можно, но не для всех случаев это будет быстрее, и в конечном итоге вам всё равно придётся профайлить, чтобы понять выигрыш. Видеокарты хорошо умеют работать с векторами и имеют специальные инструкции, которые позволяют совершать несколько арифметических операций за раз, соответственно и ваш алгоритм должен использовать эти сильные стороны, если вам просто нужно факториал посчитать, то возиться с видеокартой смысла нету, вы больше потеряете на загрузке/выгрузке данных с GPU.

Что касается реализации, то это можно сделать либо с помощью вычислительных шейдеров, либо с помощью обычных шейдеров, всё зависит от возможностей целевой платформы. На компе, если очень хочется, можно и CUDA прикрутить. Если с шейдерами раньше не работали, то могу посоветовать The Book of Shaders, там не про Unity, но достаточно толково.

К слову говоря, если у вас задача стоит не в переносе на видеокарту, а в оптимизации, то процессоры тоже не лыком шиты, у них есть SIMD, может быть это вам больше подойдёт.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos Куратор тега Unity
Можно. Ответ вы написали в заголовке - через шейдер. Вот:
https://docs.unity3d.com/Manual/ComputeShaders.html

P.S. тег javascript то тут причем?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы