Sollte ich jemals ein `vec3` innerhalb eines einheitlichen Puffer- oder Shader-Speicherpufferobjekts verwenden?
Dasvec3
type ist ein sehr netter Typ. Es nimmt nur 3 Floats auf, und ich habe Daten, die nur 3 Floats benötigen. Und ich möchte eine in einer Struktur in einem UBO und / oder SSBO verwenden:
layout(std140) uniform UBO
{
vec4 data1;
vec3 data2;
float data3;
};
layout(std430) buffer SSBO
{
vec4 data1;
vec3 data2;
float data3;
};
Dann kann ich in meinem C- oder C ++ - Code auf diese Weise übereinstimmende Datenstrukturen erstellen:
struct UBO
{
vector4 data1;
vector3 data2;
float data3;
};
struct SSBO
{
vector4 data1;
vector3 data2;
float data3;
};
Ist das eine gute Idee?