0

Open-GLで静的ポイントクラウドを描画することは可能ですか?

glBegin(GL_POINTS);

for(float x = -1; x < 1; x += 0.1) 
{
    for(float y = -1; y < 1; y += 0.1) 
    {
        for(float z = -1; z < 1; z += 0.1)
        {
            float d = 1-sqrt((x * x) + (y * y) + (z * z));
            glColor3f(d, d, d);
            glVertex3f(x, y, z);
        }
    }
}

glEnd();

後で、たとえばこの雲の周りを回転しますか? 毎回描かずに?

4

2 に答える 2

4

私はこれにうんざりしていますが、ここでもう一度言います:

OpenGL はシーン グラフではありません。OpenGL はシーンを維持しません。これは、キャンバスに描画するための描画ツールを提供する描画 API です。点、線、および三角形を描画し、一度プリミティブが描画されると、OpenGL はそれを記憶しません。唯一残るのは、フレーム バッファ内の色が変更されたピクセルです。

古い OpenGL (OpenGL-2.1 を含む) には、描画コマンドの「マクロ」の種類を記録できる「ディスプレイ リスト」と呼ばれる機能がありました。それらは「シーン」のように振る舞いますが、そうではありません。それらは単なる描画コマンドのリストです。

したがって、何かを変更すると、それが視点だけであっても、全体を再描画する必要があります。

于 2013-05-26T17:12:39.173 に答える
0

私は解決策を見つけました:

ポイントを事前計算して配列に保存し、配列全体をレンダリングします。

于 2013-05-26T17:26:46.893 に答える