我有两个结构,一个在c ++文件中,另一个在效果文件中。两者都有三个成员,pos,速度和方向。速度是浮动的,位置和方向是矢量。当我使用SetRawValue将结构从c ++文件发送到效果文件并使用这些值时,它们是0。
当我删除其中一个成员时,一切正常,值不是0.
编辑: 这是代码:
C ++ struct:
struct Player {
D3DXVECTOR3 Pos;
D3DXVECTOR3 Direction;
float Speed;
}
void Initialize() {
Player player;
player.Pos = D3DXVECTOR3(0.0f, 0.0f, 0.0f);
player.Direction = D3DXVECTOR3(1.0f, 0.53543f, 0.1f);
player.Speed = 5.0f;
ID3D10EffectVariable *EffectPlayerVariable;
EffectPlayerVariable = Shader->GetVariableByName("Player");
EffectPlayerVariable->SetRawValue(&player, 0, sizeof(Player));
}
效果文件
struct Player {
float3 Pos;
float3 Direction;
float Speed;
}
Pos和direction获取它们的值,但速度不会。