Должен ли я когда-либо использовать `vec3` внутри объекта буфера хранения унифицированного буфера или шейдера?

vec3 тип очень хороший тип. Это занимает всего 3 поплавка, и у меня есть данные, которые требуют только 3 поплавка. И я хочу использовать один в структуре в UBO и / или SSBO:

layout(std140) uniform UBO
{
  vec4 data1;
  vec3 data2;
  float data3;
};

layout(std430) buffer SSBO
{
  vec4 data1;
  vec3 data2;
  float data3;
};

Затем в моем коде на C или C ++ я могу сделать это для создания соответствующих структур данных:

struct UBO
{
  vector4 data1;
  vector3 data2;
  float data3;
};

struct SSBO
{
  vector4 data1;
  vector3 data2;
  float data3;
};

Это хорошая идея?

Ответы на вопрос(1)

Ваш ответ на вопрос