Fluessige Bewegung ueber glRotate (OPENGL)



  • hallo,
    😕
    folgendes>habe eine Datei,aus welcher ich meine Koordinaten fuer ein Objekt auslese (um die 200.000). erhalte nun somit meine Punktewolke. das anzeige ist kein prob, aber wenn ich nun ueber glRotatef(grad, 0.0, 1.0, 0.0) das Objekt verschieben moechte, dann haengt das ganze Bild doch schon um einiges nach.

    meine frage: muss ich nun spaetestens an dieser Stelle mit dem grafikspeicher arbeiten? und wenn ja, wie bekomme ich dann meine daten in diesen und von diesem in meine struktur in opengl geladen???

    cindy



  • Hehehe, sind das 200.000 Vertices oder 200.000 Polys ?
    Bei langsamen Graka's ist es durchaus normal das die Geschwindigkeit bei so einer Anzahl in die Knie geht. Was für eine Grafikkarte hast du denn ?
    Ich empfehle dir erstmal Backface-Culling. Das kann die Polygon-Menge schonmal drastisch reduzieren. Dannach könntest du einen z-Sort machen und das Depth-Testing abschalten.
    Was genau bastelst du da eigentlich ? Soll da nur ein einzelnes Modell angezeigt werden ? Oder ganze Levels / Terrains o.ä ?



  • Meine Grafikkarte ist die S3 Graphics Twister (16MB). Die Daten, die in meiner Datei liegen sind sozusagen Vertices und kommen von einem 3D Scanner. Ich will sozusagen dieses Objekt darstellen (das klappt ja schon), aber das bewegen halt.



  • Ich nehme dazu während des Bewegens eine in der Anzahl drastisch reduzierte Punktewolke.



  • das heisst ja, das dein objekt waehrend der bewegung unvollstaendig angezeigt wird ... sieht das jut aus???



  • das heisst ja, das dein objekt waehrend der bewegung unvollstaendig angezeigt wird ... sieht das jut aus???

    Es ist ausreichend. Man könnte progressive meshes verwenden, um die Anzahl der Vertices zu reduzieren. Das würde die Darstellung verbessern. Aber das dauerte mir einfach zu lange.
    Bisher gehe ich einfach nur von der Theorie aus, dass 1/4 der Höhe/Breite des Darstellungsfensters an Punkten ausreicht.
    Bsp.:
    Fenster = 640x480 -> 1/4 = 160x120
    Damit habe ich eine Reduzierung von 512x512 = 262.144 auf 19.200 Vertices. Und der Benutzer hat es lieber, wenn die Bewegung flüssig ist, als wenn die Darstellung bei der Bewegung auf den Punkt stimmt.



  • der vorschlag ist zwar ganz ok, eignet sich aber echt nicht fuer meine zwecke, da ich ja imm select mode ein objekt markiere und ueber dieses das ganze verschieben. wenn ich also die anzahl der punkte im rotatemode minimiere und der selectierte punkt ist darunter, dann tut sich da gar nichts hinsichtlich bewegung. wenn es sich um ein objekt handel wuerde, welches ich nicht anwaehle und im ganzen verschieben moechte (z.B. ueber mausposition), dann wuerde der minimierungsansatz greifen.

    gibt es also die moeglichkeit,punkte aus dem grafikspeicher (grafikkarte) in mein vertexarray einzulesen?????? 🙄



  • Moment ...
    wenn Du ein Objekt anklickst, dann ist doch die Position des angeklickten Punktes bekannt, egal, ob dieser Punkt nun über die Engine dargestellt wird oder nicht.


Anmelden zum Antworten