title: Should I ever use a `vec3` inside of a uniform buffer or shader storage buffer object?
body: <p>The <code>vec3</code> type is a very nice type. It only takes up 3 floats, and I have data that only needs 3 floats. And I want to use one in a structure in a UBO and/or SSBO:</p>
  
  <pre><code>layout(std140) uniform UBO
  {
    vec4 data1;
    vec3 data2;
    float data3;
  };
  
  layout(std430) buffer SSBO
  {
    vec4 data1;
    vec3 data2;
    float data3;
  };
  </code></pre>
  
  <p>Then, in my C or C++ code, I can do this to create matching data structures:</p>
  
  <pre><code>struct UBO
  {
    vector4 data1;
    vector3 data2;
    float data3;
  };
  
  struct SSBO
  {
    vector4 data1;
    vector3 data2;
    float data3;
  };
  </code></pre>
  
  <p>Is this a good idea?</p>