DirectX11::Как использовать StructuredBuffer в пиксельном шейдере?
Я делаю трассировку путей по урокам David Kuri(Перевод статьи - https://habr.com/ru/post/450308/), он создаёт трассировку путей с использованием Unity. Я решил сделать это на DirectX11. Сейчас я остановился на моменте, где он загружает информацию о вертексах с помощью StructuredBuffer. Естественно я попытался сделать то же самое, но вскоре понял, что я не знаю каким образом вообще передавать данные в этот буфер. Пробовал через константный буфер:
struct Vertex
{
float3 Pos;
float3 someValue;
}
cbuffer cModelBuffer
{
Vertex vertices[20];
}
Но вот никакие данные из массива структур не считывались(они туда просто не загружались по всей видимости). Да даже если сделать массив из float ничего не работало:
cbuffer cModelBuffer
{
float vertices[20];
}
В этом случае записывался только [0] элемент массива, а остальные так же не работали. За то работало с vector:
cbuffer cModelBuffer
{
vector <float, 20> vertices;
}
Но вот со структурами это не работает, в вектор их нельзя поместить. David Kuri использовал StructuredBuffer, но он заполнял этот буфер через методы Unity. А как это сделать на чистом DirectX11 я без понятия(есть вероятность, что это работает только с ComputeShader). Было бы неплохо если бы вы объяснили мне что к чему, как сделать буфер структур и загрузить в него информацию с CPU.