D3D10 Постоянный буфер не работает

Я использую постоянный буфер для передачи данных в мой пиксельный шейдер

Проблема в том, что буфер содержит 0 в шейдере во время выполнения для x, y, z и w члена float4, независимо от того, какие данные обновляются в буфере

Определения структуры следующие:

// (C++)
struct Buffer
{
XMMATRIX mvp_;
XMFLOAT4 rgba_;
int usemvp_;
};// HLSL
cbuffer Buffer : register( b0 )
{
matrix mvp_;
float4 rgba_;
int usemvp_;
};

Любая помощь высоко ценится

0

Решение

Вы должны дополнить свою структуру, чтобы выровнять ее на 16 байт.

// (C++)
struct Buffer
{
XMMATRIX mvp_;
XMFLOAT4 rgba_;
int usemvp_;
float padding[3];
};

Также вы должны убедиться, что вы устанавливаете постоянный буфер в правильную стадию шейдера, то есть VSSetConstantBuffers против PSSetConstantBuffers.

2

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

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

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