Я новичок в OpenGL в качестве учебного упражнения. Я решил нарисовать набор горизонтальных линий из сетки матрицы m x n, содержащей местоположения вершин
Это то, что у меня есть
и если я использую LINE_STRIP
Фрагмент кода, использующий массивы и индексы вершин, будет отличным, я не могу понять концепцию только из учебника, который мне нужно увидеть, и поиграть с примером кода
Любая помощь будет высоко ценится!
@ Томас
Получил работу со следующим кодом
totalPoints = GRID_ROWS * 2 * (GRID_COLUMNS - 1);
indices = new int[totalPoints];
points = new GLModel(this, totalPoints, LINES, GLModel.DYNAMIC);
int n = 0;
points.beginUpdateVertices();
for ( int row = 0; row < GRID_ROWS; row++ ) {
for ( int col = 0; col < GRID_COLUMNS - 1; col++ ) {
int rowoffset = row * GRID_COLUMNS;
int n0 = rowoffset + col;
int n1 = rowoffset + col + 1;
points.updateVertex( n, pointsPos[n0].x, pointsPos[n0].y, pointsPos[n0].z );
indices[n] = n0;
n++;
points.updateVertex( n, pointsPos[n1].x, pointsPos[n1].y, pointsPos[n1].z );
indices[n] = n1;
n++;
}
}
points.endUpdateVertices();
Затем я обновляю и рисую, выполняя
points.beginUpdateVertices();
for ( int n = 0; n < totalPoints; n++ ) {
points.updateVertex( n, pointsPos[indices[n]].x, pointsPos[indices[n]].y, pointsPos[indices[n]].z );
}
points.endUpdateVertices();
Это результат
Исправьте это, изменив вложенный цикл for
for ( int col = 0; col < GRID_COLUMNS; col++ ) {
for ( int row = 0; row < GRID_ROWS - 1; row++ ) {
int offset = col * GRID_ROWS;
int n0 = offset + row;
int n1 = offset + row + 1;
indices[n++] = n0;
indices[n++] = n1;
}
}
Теперь я могу иметь любое количество строк и столбцов
Спасибо, Агин!