2009-08-13 9 views
1

GL_POLYGONが正しく埋められていませんか?

なぜ私の形状にこれらの線が現れていますか?

私はこのようなOpenGLの初期化しています:

glDisable(GL_TEXTURE_2D); 
glDisable(GL_DEPTH_TEST); 
glDisable(GL_COLOR_MATERIAL); 
glEnable(GL_BLEND); 
glEnable(GL_POLYGON_SMOOTH); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
glClearColor(0, 0, 0, 0); 

をそして、このような形状を描く:それは時計回りまたはCCWかどう

glClear(GL_COLOR_BUFFER_BIT); 
glColor3f(1, 0, 0); 
glBegin(GL_POLYGON); 
    glVertex2f(-5, -5); // bottom left 
    glVertex2f(5, -5); // bottom right... 
    glVertex2f(6, 0); 
    glVertex2f(5, 5); 
    glVertex2f(-5, 5); 
glEnd(); 

することは重要ではありません。

答えて

3

GL_POLYGON_SMOOTHを使用して、ポリゴンのアンチエイリアシングの時代遅れと遅い方法です。また、上記の問題が発生します。

最新のマシンで高速アンチエイリアスを実行するには、マルチサンプルバッファ拡張を使用することをお勧めします。続きを読むhere.

+0

マルチサンプリングを有効にする方法を理解するのにしばらく時間がかかりましたが、うまく機能するようになりました。これはうまく動作します:)ありがとう、 – mpen

3

GL_POLYGON_SMOOTHを無効にするとその問題は解決しますが、アンチエイリアスは失われます。 FSAAは代わりとして働くだろうが、それはより遅くなるだろう。

編集:周りを探し、例の多くはそこにありますglBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE);

+0

GL_POLYGON_SMOOTHを無効にしても問題は解決しました。後者の解決策はそれを完全に消滅させます。幸い中央値はありませんか? – mpen

関連する問題