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.