Als Linux User kann ich deine "exe" leider nicht testen.
Was mir aber auffällt ist das
glRotatef(zoom, 1, 0, 0);
nicht richtig sein kann, denn in Abhängigkeit vom Zoom die ganze Szene zu drehen erscheint mir doch sehr merkwürdig.
außerdem würde ich an deiner Stelle mal ein wenig mehr push's und pop's einbauen. in etwa so :
Delphi-Quellcode:
// Anfahren der Kamera Pos
glLoadIdendity;
glTranslated(xk/15+xap,0,zk/15+zap-200);
// glRotatef(zoom, 1, 0, 0); // zoom verändert hier bloß den winkel ()
glRotatef(zk, 0, 1, 0);
glTranslated(zoom/5,0,zoom/5);
// Rendern der Objecte
glPushMatrix();
glCallList(list[0]);
glPopMatrix();
glEnable(GL_CULL_FACE);
glCullface(GL_back);
glPushMatrix();
mesh.AdvanceAnimation;
mesh.Render; // erstes objekt
glPopMatrix();
glPushMatrix();
glTranslated(0,0,-7);
glRotated(-90,1,0,0);
haus.AdvanceAnimation;
haus.Render; // zweites objekt
glPopMatrix();
Denn nur so kannst du die Objekte einzeln und unabhängig verschieben.
So ich da mir nicht ganz klar war was nun genau dein Problem ist, sage ich einfach mal Probiere mal das hier aus, evtl. hilft es ja
.