Vertex Shader — Массив с постоянным буфером

У меня проблемы с использованием постоянных буферов с массивами, в настоящее время я отправляю массив размером 100 для моего вершинного шейдера, например так:

/////////////
// DEFINES //
/////////////
#define MAX_NUMBER_INSTANCES 100

/////////////
// STRUCTS //
/////////////
struct InstanceInfo
{
matrix InstanceWorldMatrix;
uint CurrentFrame;
uint TotalFrames;
uint AnimationType;
float DeltaTime;
};

/////////////
// BUFFERS //
/////////////
cbuffer InstanceBuffer
{
InstanceInfo Instance[MAX_NUMBER_INSTANCES];
};

И я получаю неправильные результаты в шейдере … Вот мой буфер C ++: (почти то же самое)

struct InstanceInfo
{
D3DXMATRIX worldMatrix;
unsigned int currentFrame;
unsigned int totalFrames;
unsigned int animationType;
float deltaTime;
};

Буфер инициализируется правильно с size: sizeof (InstanceInfo) * MAX_NUMBER_INSTANCES (MAX_NUMBER_INSTANCES в моем коде c ++ тоже 100) и данные тоже копируются правильно. (Я дважды проверил их)

Я знаю, что есть правило упаковки, но я не могу найти, где моя ошибка (вероятно, передо мной, но я не могу видеть это …)

Если кто-то может мне помочь …

1

Решение

Хорошо, я решил проблему, если у кого-то возникла такая же проблема, не забудьте сначала проверить, правильно ли работает предыдущий буфер (это может вызвать волновой эффект для всех последующих буферов).

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]