相关疑难解决方法(0)

我应该在统一缓冲区或着色器存储缓冲区对象中使用`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;
};
Run Code Online (Sandbox Code Playgroud)

然后,在我的C或C++代码中,我可以这样做来创建匹配的数据结构:

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

struct SSBO
{
  vector4 data1;
  vector3 data2;
  float data3;
};
Run Code Online (Sandbox Code Playgroud)

这是一个好主意吗?

opengl opengl-es glsl vulkan

28
推荐指数
1
解决办法
4507
查看次数

标签 统计

glsl ×1

opengl ×1

opengl-es ×1

vulkan ×1