Ich kenne delphigl.com schon. Dass manchmal das Bild je nach Perspektive verzerrt ist ist mir auch klar, Zentralperspektive halt, aber diese Verzerrung ist alles andere als proportional (siehe Anhang vorheriger Beitrag.)
Achja, ich bräuchte noch ein paar Befehle für Filter/Antialiasing Einstellungen und Befehle zur Optimierung von Qualität/Geschwindigkeit.
Ich initialisiere
OpenGL folgendermaßen:
Das ganze ist in der FormCreate-Prozedur.
p3d ist eine Komponente vom Typ TPanel.
Delphi-Quellcode:
canv := TCanvas.Create;
canv.Handle := p3D.Handle;
synh := TSynRoboterTronoSyn.Create(commands);
status := 'nix';
commands.Highlighter := synh;
commands.Modified := False;
form1.Left := screen.Width div 2 - form1.Width div 2;
form1.Top := screen.Height div 2 - form1.Height div 2;
readcmdsintoarray;
firsterrorline := -1;
xpos := 0;
ypos := 0;
dir := 'u';
statusbar1.Panels[0].Text := 'Zeile: 1, Spalte: 1';
statusbar1.Panels[1].Text := 'Kein Fehler gefunden.';
statusbar1.Panels[2].Text := '[Unbenannt]';
//drawrobot(0, 0, 'u');
form1.myDC := GetDC(canv.Handle);
SetupPixelFormat;
myRC := wglCreateContext(mydc);
wglMakeCurrent(myDC, myRC);
glEnable(GL_DEPTH_TEST);
glenable(GL_Line_Smooth);
glenable(GL_texture_2d);
gridtex := auxDIBImageLoadA('./textures/grid.bmp');
glGenTextures(1, grid);
glBindTexture(GL_TEXTURE_2D, grid);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, 3, gridtex^.sizeX, gridtex^.sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, gridtex^.data);
//Das ganze noch 3 mal mit anderen Texturen.
glViewport(0, 0, p3d.Width, p3d.Height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(100, 1, 0.01, 100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();