0

均一にサンプリングされた距離のグリッドがあります。

D(x_i, y_j, z_k)、ここで

x_i = x0 + i*dx、0 <= i < nx

y_j = y0 + j*dy、0 <= j < ny

z_k = z0 + k*dz、0 <= k < nz

このグリッドの各セルをジオメトリ シェーダーに渡し、マーチング キューブ アルゴリズムで指定された 0 ~ 5 個の三角形を出力したいと考えています。

x0、dx、y0、dy、z0、dz、および値を均一な値を使用してシェーダーに送信し、セルのインデックスをポイントの位置としてエンコードすることを考えていました。

glBegin(GL_POINTS);
for(int i = 0; i < nx - 1; i++) {
    for(int j = 0; j < ny - 1; j++) {
        for(int k = 0; k < nz - 1; k++) {
            glVertex3f(i, j, k); 
        }
    }
}
glEnd();

ただし、ジオメトリ シェーダー内では、(i,j,k) セルの 8 つのコーナーの距離値を検索する必要があります。距離の 3D 配列をジオメトリ シェーダーに渡すにはどうすればよいですか?

4

0 に答える 0