为什么我可以通过我的几何着色器 N(其中 N 是一个非常高的数字,例如 10000)顶点并像这样渲染它们:
for (int i = 0; i < gl_VerticesIn; ++i) {
gl_Position = projectionmodelview_matrix_ * gl_PositionIn[i];
EmitVertex();
}
...但我不能像这样生成 N 个顶点(当只传递一个顶点时):
for (int i = 0; i < N; ++i) {
float f = float(i);
gl_Position = projectionmodelview_matrix_ * vec4(f, f, f, 1.0);
EmitVertex();
}
OpenGL 是如何区分这两者的呢?
*注意:我修改了访问 gl_PositionIn[0] 等的代码,但第二个仍然给我一个错误。*