Вычисления в шейдере и вывод данных в скрипт

Шейдеры и все-все-все.

Вычисления в шейдере и вывод данных в скрипт

Сообщение AlexandrBuryakov 21 фев 2019, 01:01

Здравствуйте. Скажите, какие есть способы передать, а потом взять обработанные данные из шейдера?
Нужно закинуть несколько массивов, произвести много разных вычислений между ними (float или Vector3) и потом забрать результаты. На сколько я понял compute shader это dx11 и он у меня не поддерживается. Так что dx9 остаётся.
Какие в принципе есть способы в HLSL что-то забрать из шейдера (gpu) в обычный скрипт (cpu). Там вроде как с этим проблемы потому, что это не самая быстрая операция, какие есть варианты по быстрее? Делать это нужно каждый фиксированный кадр.
Может можно через массив вертексов передавать данные и потом забирать? Только вот как несколько массивов между собой вычислять и при этом на сколько это возможно параллельно? И так, что бы каждый элемент одного массива мог произвести вычисления с каждым из элементов этого же массива + вычисления с данными других массивов? Для избежания конфликтов из-за изменения данных при расчётах, можно просто использовать отдельный массив для результатов, в который будут складываться изменения, а потом обновляться основные массивы при передаче информации в CPU перед следующим циклом вычислений.
...
Буду рад примеру загрузки и выгрузки двух массивов складываемых между собой и каждый элемент первого массива вычисляется параллельно остальным элементам этого же первого массива, если это возможно.)))
Спасибо. :ymhug:
AlexandrBuryakov
UNIт
 
Сообщения: 56
Зарегистрирован: 26 янв 2019, 14:36

Re: Вычисления в шейдере и вывод данных в скрипт

Сообщение Woolf 22 фев 2019, 02:19

Так что dx9 остаётся

а разве DX9 умеет возвращать данные из шейдера? Имхо, вижу только один путь для передачи данных из шейдера в основную память, через RenderToTexture.
А, вообще, для таких вещей есть CUDA https://developer.nvidia.com/cuda-zone
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Аватара пользователя
Woolf
Адепт
 
Сообщения: 6833
Зарегистрирован: 02 мар 2009, 16:59

Re: Вычисления в шейдере и вывод данных в скрипт

Сообщение AlexandrBuryakov 22 фев 2019, 04:38

Мне подсказали это https://docs.unity3d.com/ScriptReference/Material.html
В аналогичной теме тут, каюсь viewtopic.php?f=18&t=49534
AlexandrBuryakov
UNIт
 
Сообщения: 56
Зарегистрирован: 26 янв 2019, 14:36


Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


cron