は、私はこれは私がLINE_STRIP 使用している場合は、私が 水平線の描画方法は?私は運動を学ぶようにOpenGLに新しいです
を持っており、何の頂点の位置
を含むMXNマトリックスのグリッドからの水平ラインのセットを描くことにしました頂点配列とインデックスを使用して
コードスニペットは素晴らしいことだろう、私はちょうど私がすべてのヘルプを参照し、コード例 でプレイする必要があるテキストブックからの概念を得ることができるように思わカントあまり理解されるであろう!
@Thomas は、それがその後、私はこれが結果
です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();
をすることによって更新し、描画次のコード
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();
で作業ガットループ
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;
}
}
ため、入れ子を変更することにより、
修正それが今、私は
おかげagin行と列の数に制限はありません!
ありがとう、チャームのように動作しますが、n x nグリッドでは動作しません。m x nとは動作しません。したがって、行数が列数と異なる場合、図面が乱雑になります。 –
これはn x mでも有効です。例えば、numcolsが5の場合、rowoffsetは0,5,10,15でなければなりません。計算や頂点配列に何か問題があると思われます。あなたの質問にいくつかのコードを追加できましたか? – Thomas