Постоянное заполнение буфера - PullRequest
0 голосов
/ 11 декабря 2019
DirectX::XMMATRIX worldM;
    DirectX::XMMATRIX TransformM;
    DirectX::XMFLOAT3 PointLightpos;

    float pointLightIntensity;
    DirectX::XMFLOAT3 PointLightcolor;

    float ambientIntensity;
    DirectX::XMFLOAT3 AmbientLightColor;

Вот как я сделал структуру моего постоянного буфера, я также сделал это то же самое в моих vs и ps. Проблема в том, что я получаю странные результаты, поэтому я предполагаю, что не могу сгруппировать float3 и float, которые не принадлежат друг другу, как будто он думает, что pointlightintensity является частью pointlightpos или чем-то.

Я попытался добавитьотступы плавают, но я все еще получаю странные результаты, например, цвет должен быть синим, но он становится белым.

Это проблема заполнения, и если да, то как вы должны правильно объявлять 16 байтов?

1 Ответ

0 голосов
/ 11 декабря 2019

Проблема была не в заполнении, а в том, что я неправильно сконструировал float4, поэтому пиксельный шейдер автоматически выставил белый цвет как цвет.

Пиксельный шейдер всегда возвращает белый цвет

...