2011-10-06 6 views
0

나는 glVertexArrayglDrawArray을 사용하여 플롯 할 정점의 Nx4 배열을 가지고 있습니다. 2D 산포도로서. 저는 현재 배열과 같이 초기화 :이상한 결과 plotting glVertexPointer 보폭 변수를 가진 배열

enter image description here

참고 :이로 제대로 표시

glVertexPointer(4, GL_INT, 0, data); 
glDrawArrays(GL_POINTS, 0, nPlot); 

:

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 
} 

그럼 난과 2 차원 산란을 그릴 배경에 색칠 된 사각형이있어서 포인트가 정확한 위치에 떨어지는 지 쉽게 판단 할 수 있습니다.

그러나 2 차원 줄거리 만 원할 뿐이므로 사용되지 않는 2 가지 치수는 건너 뛰고 싶습니다. glVertexPointer 내 꼭지점이 2 포인트 밖에 가지고 있지 않다는 것을 말하고 2 번 꼭지점 사이의 보폭을 설정했는데, 그렇게해야한다고 생각 했으므로 작동하지 않는 것 같습니다.

enter image description here

내가 보폭 변수의 적절한 기능을 오해 :

glVertexPointer(2, GL_INT, 2, data2); 
glDrawArrays(GL_POINTS, 0, nPlot); 

그러나 나는이 음모 때 나는 XXY, YxZ, ZxW에서 보여주는 점과 매우 다른 결과를 얻을? 스트라이드를 올바르게 설정할 수없는 경우 맨 아래 줄거리가 맨 위 줄거리와 비슷합니까?

답변

2

보폭은 벡터 간의 "갭"이 아니며 보폭은 벡터 시작 위치 사이의 거리입니다. 그래서 귀하의 경우 벡터는 "sizeof (int) * 4"간격을 두어 사용할 스트라이드 거리입니다 :

glVertexPointer(2, GL_INT, sizeof(GLint)*4, data2);