Refreshen von gluLookAt
-
Hallo,
ich habe im Moment folgendes Problem. Und zwar habe ich eine Strassenszene programmiert, die nun von einer Kamera abgefahren wird. Das funktioniert auch ganz gut, nur ist es relativ langsam.
Weshalb es so langsam ist, ist mir auch klar. Und zwar "fahre" ich die Strasse ab, in dem ich den Sichtwinkel mit gluLookAt entsprechend abändere. Nachdem das geschehen ist, lass ich die Szene nochmal zeichnen.
Da die Strasse allerdings aus knapp 40.000 Punkten besteht, welche über eine Schleife gezeichnet werden, dauert es natürlich.Gibt es eine Möglichkeit, die Strasse nur einmal zu zeichnen und dann nur den geänderten Sichtwinkel neu berechnen und anzeigen zu lassen?
Danke schonmal im Voraus,
Gruss Lars
-
Icebear schrieb:
Weshalb es so langsam ist, ist mir auch klar. Und zwar "fahre" ich die Strasse ab, in dem ich den Sichtwinkel mit gluLookAt entsprechend abändere. Nachdem das geschehen ist, lass ich die Szene nochmal zeichnen.
das ist auch die vollkommen übliche methode.
Gibt es eine Möglichkeit, die Strasse nur einmal zu zeichnen und dann nur den geänderten Sichtwinkel neu berechnen und anzeigen zu lassen?
du: hey maler, mach mir mal ein portrait
opengl: ok, *pinsel* bitte sehr
du: ok, kannst du das jetzt evtl. ein wenig mehr ins profil drehen?kurz: opengl setzt dreieck für dreieck einen stapel pixel in einem 2d bild. zu absolut keinem zeitpunkt existiert eine "echte" 3d szene.
da aber 40000 punkte kein akt sein sollten würde ich den grund woanders suchen, z.b. beim für größere sachen extrem schnarchigen immediate mode (glBegin, bla, glEnd), nicht von der hardware beschleunigten primitven (gl_polygon) oder dem versuch jeden frame eine komplette welt zu rendern, statt sich auf den wirklich sichtbaren teil zu beschränken.
-
Icebear schrieb:
Gibt es eine Möglichkeit, die Strasse nur einmal zu zeichnen und dann nur den geänderten Sichtwinkel neu berechnen und anzeigen zu lassen?
Du könntest display lists meinen, informier dich mal darüber.
cya
liquid
-
Da heisst es entweder Optimieren (Sichtbarkeitsberechnungen), oder alles in eine Displaylist schmeissen und los gehts
-
Huhu,
vielen Dank, werde mal schauen was ich dazu alles finde
Wüsnche noch nen schönen Abend,
Gruss Lars
-
ChockoCookie schrieb:
oder alles in eine Displaylist schmeissen und los gehts
Nicht wirklich zeitgemäß.
-
Nur weil VBOs aktueller sind, haben dlists nichts von ihren Stärken eingebüßt. Der Treiber hat dann übrigens auch noch die Möglichkeit die Geo-Daten zu optimieren, das ist bei VAs und VBOs meistens weniger (bis gar nicht) der Fall. Also wenns wirklich statisch ist und an den drawcalls hängt, dann ist dlists die beste Lösung.
cya
liquid
-
Huhu,
was meinst Du denn mit VAs und VBOs ?
Gruss Lars
-
Vertex Array
Vertex Buffer Objectcya
liquid
-
Fangen wir mal mit den banalen Dingen an:
Hast du Backface-Culling aktiviert ? Dann fällt schonmal die hälfte der Polys weg. Das bringt dir aber nur was, wenn deien Graka der Engpass ist.
An sonsten würde ich vielleicht BSP verwenden - Musst nur wissen, ob der Aufwand sich für deine kleine Szene lohnt
-
Ahvolon[F-Bytes] schrieb:
ChockoCookie schrieb:
oder alles in eine Displaylist schmeissen und los gehts
Nicht wirklich zeitgemäß.