@Ksushqa
Активно практикующий

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
Particle Москва
от 150 000 руб.
Pixonic Москва
от 220 000 руб.
PHYGITALISM Москва
от 70 000 руб.
26 марта 2019, в 03:19
100000 руб./за проект
26 марта 2019, в 01:09
40000 руб./за проект
26 марта 2019, в 00:54
40000 руб./за проект