变换反馈跳过4元素vec3数组中的3个

时间:2013-06-27 09:32:15

标签: opengl opengl-3

我有一个像这样的几何着色器输出:

out vec3 out_a[4];
out vec3 out_c[4];
out vec3 out_b;
out int out_d;
在着色器编译之后

,在链接之前,我设置:

GLchar *vars[5] = { "gl_Position","out_a","out_b","out_c","out_d" };

glTransformFeedbackVaryings(pgm,5,vars,GL_INTERLEAVED_ATTRIBS);

变换反馈将out_a(vec3 [4])捕获为单个vec3,而out_c(也是vec3 [4])被正确捕获为{{1 }} 序列。

转换反馈对象,vbo / vao和缓冲区对象都可以。问题是变换反馈只捕获4个元素数组中的第一个(但是另一个4元素数组是正确捕获的)

有没有人见过这样的行为?更改捕获的变化的顺序不会改变任何内容,12 x GL_FLOAT(并且只有那个)总是被捕获为单个vec3。

out_a glGetTransformFeedbackVaryings正确报告out_a(其他输出的值也正确),但4 x GL_FLOAT_VEC3仍然是缓冲区对象中的单个vec3

0 个答案:

没有答案