OpenGLで輪郭の非凸多角形を描画しようとしていますが、私はうまくいかず、問題になります。
私がやっていることは、基本的に、ポリゴンをテッセレーションして、そこから表示リストを作成することです。それから、私はそれを2度描きます。だから、これはこれまでのところ、私が持っているコードです:明らかOpenGLの非凸多角形の概要
GLUtriangulatorObj *tess = gluNewTess();
gluTessCallback(tess, GLU_TESS_BEGIN, (void (__stdcall*)(void))tessBeginCB);
gluTessCallback(tess, GLU_TESS_END, (void (__stdcall*)(void))tessEndCB);
gluTessCallback(tess, GLU_TESS_ERROR, (void (__stdcall*)(void))tessErrorCB);
gluTessCallback(tess, GLU_TESS_VERTEX, (void (__stdcall*)())tessVertexCB);
GLuint poly = glGenLists(1);
glNewList(poly, GL_COMPILE);
gluTessBeginPolygon(tess, NULL);
gluTessBeginContour(tess);
// calls to gluTessVertex(tess, v, v); to add vertices
gluTessEndContour(tess);
gluTessEndPolygon(tess);
gluDeleteTess(tess);
glEndList();
// DRAW
glPolygonOffset(1.0, 1.0);
glEnable(GL_POLYGON_OFFSET_FILL);
glCallList(poly);
glDisable(GL_POLYGON_OFFSET_FILL);
glColor3ub(255, 0, 0);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glCallList(poly);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
、私が概説ポリゴンとすべての内側のラインを取得します。
そのような内側の線を削除するにはどうすればよいですか?
ありがとうございました
かなり明白です。しかし、うまくいくようです。ありがとう。私はそれを行うためのより高度な方法があると思っていましたが、時にはより簡単な解決法が良いでしょう。 – MikMik