【发布时间】:2017-11-08 23:57:48
【问题描述】:
#version 450
#extension GL_ARB_separate_shader_objects : enable
out gl_PerVertex {
vec4 gl_Position;
};
vec2 positions[3] = vec2[](
vec2(0.0, -0.5),
vec2(0.5, 0.5),
vec2(-0.5, 0.5)
);
void main() {
gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
}
问题 1:这是指什么?
out gl_PerVertex {
vec4 gl_Position;
};
问题 2:什么解释了语法 vec2 positions[3] = vec2[](...)?要初始化数组,语法不应该是
vec2 positions[3] = {
vec2(0.0, -0.5),
vec2(0.5, 0.5),
vec2(-0.5, 0.5)
};
这是特定于着色器的语法,还是 arrayType[](...) 也可以在 C++ 中用作构造函数?
【问题讨论】: