Problem z antialiasingiem (OpenGL)

0

Nie wiem czemu ale nie dziala mi antialiasing. Ani dla wielokatow, ani dla punktow wlaczam i GL_POINT_SMOOTH i GL_LINE_SMOOTH i GL_POLYGON_SMOOTH oraz GL_BLEND ale nic z tego. Niby GlIsEnabled(GL_POLYGON_SMOOTH) zwraca GL_TRUE ale linie sa kanciaste (antialiasing nie dziala). Pod tym linkiem jest pelen kod mojego programu www.republika.pl/hondadelux/opengl.zip razem z bibliotekami ktorych uzywam (gl.pas glu.pas). Zaznaczam, ze program jest banalny (wyswietla tylko trojkat, oraz punkt), takze nie potrzeba strasznie zaawansowanej wiedzy na temat OpenGL aby go zrozumiec :) Tutaj kod funkcji renderscene oraz renderframe

procedure RenderScene;
begin
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); // czyszczenie buforow koloru i glebokosci
  glLoadIdentity();
  RenderFrame;
  SwapBuffers(h_DC);
end;

procedure RenderFrame;
var
   str:string;
   base:integer;
begin
  //Obrót

  glTranslatef(0.0, 0.0, -5.0);
  glrotatef(angle,1,0,0.5);

  if glisenabled(GL_POLYGON_SMOOTH)=GL_TRUE then glcolor3f(0,1,0)
  else glcolor3f(1,0,0);

 if keys[VK_NUMPAD1]=true then gllinewidth(1);
 if keys[VK_NUMPAD3]=true then gllinewidth(3);
 if keys[VK_NUMPAD5]=true then gllinewidth(5);
 if keys[VK_NUMPAD7]=true then gllinewidth(7);
 if keys[VK_NUMPAD9]=true then gllinewidth(9);

  glpointsize(20);
 //gllinewidth(1.0);

// GlGet(GL_POINT_SIZE_RANGE);  //CZemu GLGET NIE DZIALA????


  glpolygonmode(gl_front_and_back,gl_line);
  glbegin(GL_POLYGON);
      glvertex3f(0,0,0);
      glvertex3f(1,0,0);
      glvertex3f(1,1,0);
  glEnd();

  if glisenabled(GL_POINT_SMOOTH)=GL_TRUE then glcolor3f(0,1,0)
  else glcolor3f(1,0,0);

  glbegin(GL_POINTS);
      glvertex3f(0.5,0.5,0);
  glend;
end;

Aha. nie dziala mi takze glget np glGet(GL_POINT_SIZE_RANGE) czemu ? Twierdzi, ze nie ma takiej funkcji.

0

do antialiasingu chyba powinien być włączony blending - spróbuj, ale mogę się mylić

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