私は高調波を描画するためにglDrawArrays(GL_POINTS、...)を使用します。
ポイントには表面がありません。
頂点に基づいてレンダリングしながらサーフェス領域を計算する際に、サーフェス(三角形?)がOpenGLによって生成される順序を知りたいですか?私はそれを行うことができますか?
OpenGLはtraianglesを生成しません。送信する三角形をラスタライズします。あなたが指定したのと同じ順序で。 glDrawArrays(mode, first, count)
は正確
myDrawArrays(GLenum mode, GLuint first, GLuint count)
{
GLuint *indices = malloc(count * sizeof(GLuint));
/* just assume malloc never fails, OpenGL doesn't have to alloc here, of course) */
for(int i=0; i<count; i++)
indices[i] = first + i;
glDrawElements(mode, count, GL_UNSIGNED_INT, indices);
free(indices);
}
のようなプリミティブは、彼らが指定されている順序でラスタライズされ動作します。
表面積を知りたいが、描画点です。すでに述べたように、ポイント(数学的に)には表面はありません。しかし、それらは少なくとも1つの(サブ)ピクセルをカバーする。実際にのピクセルカバレッジを知りたいと思うかもしれませんか?
OpenGLには、「オクルージョンクエリ」と呼ばれるメソッドがあります。このメソッドは、返すもの、クエリ内のプリミティブを描画することで何ピクセル(画面/フレームバッファ)のピクセルが表示されたかを示します。
http://www.opengl.org/registry/specs/ARB/occlusion_query.txt
あなたは、OpenGLレンダリングを使用して(数である)表面の面積を計算したいですか?どのようにしたいですか? – mouser
これは再投稿です – Ulterior