我有一个 Nx4 顶点数组,我想使用glVertexArray
和绘制glDrawArray
。作为二维散点图。我目前像这样初始化数组:
GLint data[4][MAX_N_POINT];
for (int j=0; j<MAX_N_POINT; j++)
{
data[j][0] = 200 + rand()%20 - 10; // X Dimension
data[j][1] = 400 + rand()%20 - 10; // Y Dimension
data[j][2] = 600 + rand()%20 - 10; // Z Dimension
data[j][3] = 1; // W Dimension
}
然后我绘制二维散点图:
glVertexPointer(4, GL_INT, 0, data);
glDrawArrays(GL_POINTS, 0, nPlot);
正确显示如下:
注意:背景中的彩色方块是这样我可以轻松判断点是否落在正确的位置
但是,由于我只想要一个 2d 图,我想跳过 2 个未使用的维度。我试着告诉glVertexPointer
我的顶点只有 2 个点,然后将顶点之间的步幅也设置为 2,但这似乎并没有像我认为的那样工作。
glVertexPointer(2, GL_INT, 2, data2);
glDrawArrays(GL_POINTS, 0, nPlot);
然而,当我绘制这个时,我得到了一个非常不同的结果,点显示在 XxY、YxZ、ZxW:
我是否误解了 stride 变量的正确功能?如果不是,我如何正确设置步幅,使底部图类似于顶部图?