wygładzanie krawędzi

0

Witam,
wyrenderowałem w OpenGL, taką scenę:
http://dl.dropbox.com/u/6211144/1.jpg

Dolne i górne krawędzie są wygładzone, ale boczne są 'postrzępione'.
Jak to prosto zniwelować? Szukałem w Google PROSTEGO rozwiązania, ale nic sensownego nie znalazłem.
Nie używam biblioteki glut, do rysowania krawędzi użyłem GL_QUAD i funkcji glVertex3d

0

Antyaliasing is the answer.

Odpowiedź powinna być np. tutaj: http://glprogramming.com/red/chapter06.html#name2

0

widziałem tą stronę:
i zarówno
glEnable(GL_LINE_SMOOTH) i glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE); mam w swoim kodzie.
Efekt taki, jak w jpgu który podałem w 1 poście.

0

Nigdy tego chyba nie używałem a kompilatora chwilowo nie mam pod ręką, ale wg. dokumentacji:
http://pyopengl.sourceforge.net/documentation/manual/glHint.3G.html

GL_DONT_CARE: No preference.

Powinno chyba być GL_NICEST

GL_NICEST: The most correct, or highest quality, option should be chosen.

edit: i skoro używasz GL_QUAD to chyba raczej GL_POLYGON_SMOOTH_HINT a nie GL_LINE_SMOOTH_HINT

GL_POLYGON_SMOOTH_HINT: Indicates the sampling quality of antialiased polygons. Hinting GL_NICEST can result
in more pixel fragments being generated during rasterization, if a larger filter function is applied.

0

niestety bez skutku...

0

na tym screenie one nie są gładkie, tylko równe z pikselami..

Spróbuj
glEnable(GL_MULTISAMPLE);

Możesz też wymusić wygładzanie w ustawieniach sterowników, jeśli masz zainstalowane i na to pozwalają (ATI i Nvidia na 100% pozwalają).

1 użytkowników online, w tym zalogowanych: 0, gości: 1