1
て来ていない私は今、すべての行列の配信を受けるのDirectX 10/11定数バッファの内容が
C++で
cbuffer MatrixBuffer : register(b1) {
float4x4 aMatrixTransforms[24];
float aMatrixWeights[24];
uint UsedMatrices;
float3 Unused;
}
HLSLで
と
struct stMBuffer {
D3DXMATRIX aMatrixTransforms[24];
float aMatrixWeights[24];
unsigned int UsedMatrices;
D3DXVECTOR3 Unused;
};
として定義され、一定のバッファを作りましたaMatrixWeights配列の最初の5つの要素だけでなく、正常に終了しましたが、それ以降は0はありません。誰も何が起こっているのか知っていますか?ありがとう。
hlslは構造体のすべての要素が16バイトの浮動小数点型として渡され、残りのデータは転送されますが、配列要素間の迷路では失われてしまいます。 floatはxyzwが浮動小数点数で到着します。だから16バイトのパッキングを回避する方法はありますか? –
これは奇妙です - 実際にバッファに来るものはPIXでチェックしましたか? – asmi84