0

OpenGLを使用して2Dグレースケール画像の配列から作成された3Dボリュームを表示することについて質問があります。

より正確には、ボリュームの中央のスライスをx、y、z方向にのみ表示したいと思います。

ここに示すように、表示したい座標でボリュームデータをループし、GL_POINTSを使用してペイントするだけで、これを正常に実行できました(z方向の中央スライスを表示)。

for (x=0; x<sizeX; x++){
  for (y=0; y<sizeY; y++){
    color=volume(x,y,0)
    glBegin(GL_POINTS);
    glColor3f(color,color,color);
    glVertex3f(x,y,0);
    glEnd();
  }
}

ボクセルの実際の寸法をmmで知っているので、ボクセルを現在のようにGL_POINTSではなく、その寸法の立方体として表示することを考えていました。これはこれを行うための良い方法ですか?ボクセルを立方体として表示することは一般的に良い考えではないことをどこかで読んだことがあります。

加えて、ボリュームは400x350pxのサイズの約300枚の画像で構成されています。

4

1 に答える 1

1

アプリケーションが高密度のボリュームデータのスライスを表示する場合、ポイントまたはボクセルのいずれかを使用するメリットはわかりません。私にとって、あなたが求めていることを達成するための最良の方法は、単純な平面を使用することです。それは、画像データでテクスチャマップを作成することです。グリッドデータの寸法について言及しましたが、この事実を視覚化したい場合は、平面の代わりにボックスを使用することもできます。テクスチャマップを使用することは、glPointやボックスを使用して個々のボクセルを表す場合と比較して、目的にとってはるかに効率的であるはずです。

Webには、その方法を説明するチュートリアルが多数あります(NeHeなど)。

于 2012-04-17T15:57:30.673 に答える