Alte Spiele schneller als meine



  • Hallo,
    ich habe früher auf meinen Pentium II mit 233 MHz Tomb Raider gespielt und es lief flüssig. Heute habe ich mal eine kleine Demo auf dem alten Rechner gestartet, die im Prinzip aus einem großen Würfel bestand, der je für Boden, Decke und Wände eine Textur hatte. Durch die geringere Komplexität erwartete ich, dass es mindestens so flüssig lief wie Tomb Raider damals. Fehlanzeige. Pro Frame benötigte mein Rechner ca. 5 Sekunden.

    Woran kann das liegen? Benutzt habe ich für die kleine Demo OpenGL.



  • das sind irgendwei ein bißchen wenig infos...des kann an vielem liegen...vielleicht hast du ja ein Sleep(5000) in jedem Frame drin?! 😉 prinzipiell kann jeder schlechte alghoritmus oder fehler extrem zeit kosten, du solltest einfach mal schauen ob du irgendwelche fetten Schleifen drin hast oder zeitaufwendige Sachen, bei denen viel gerechnet wird..es sollte aufjedenfall möglich sein sowas flüssig hinzukriegen (es sei denn du hast deinen prozessor auf ein mhz runtergetaktet oder so 🙂

    [ Dieser Beitrag wurde am 03.02.2003 um 10:08 Uhr von crass editiert. ]



  • Vielleicht solltest du dir mal einen Profiler besorgen.



  • Vielleicht solltest du mal ne BSP-Routine implementieren oder wenigstens etwas Backface-Culling "betreiben". Wenn Tomb Raider jedes Level komplett durch den Renderer jagen würde, könntest du es auch nur als Dia-Show spielen 😃
    Ausserdem ist die Geschwindigkeit auch von anderen Faktoren als der Poylgonzahl abhängig:
    Läuft die Anwendung als Fenster/Vollbild ?
    Ist Beleuchtung, Blending oder so'n Spielkrams eingeschaltet ?
    Welche Farbtiefe ?
    Welche Auflösung ?
    Wie gross sind die Texturen ?
    Welches API verwendet eigentlich Tomb Raider ? Der erste Teil war noch Software-gerendert, oder irre ich mich da ? 😕

    [ Dieser Beitrag wurde am 03.02.2003 um 10:41 Uhr von Cpp_Junky editiert. ]



  • Ein sleep ist nicht drin und komplexe Algorithmen auch nicht. Man kann lediglich eine Kamera in einem Würfel bewegen.

    1. Läuft die Anwendung als Fenster/Vollbild ?
    2. Ist Beleuchtung, Blending oder so'n Spielkrams eingeschaltet ?
    3. Welche Farbtiefe ?
    4. Welche Auflösung ?
    5. Wie gross sind die Texturen ?

    1. Sowohl als auch, man kann umschalten. Beides läuft aber schleppend langsam.
    2. Beleuchtung und Blending ist nur für ausgewählte Objekte aktiviert. Nicht generell.
    3. 16 Bit
    4. 640x480
    5. 128x128

    Es werden wirklich nur 6 Rechtecke gerendert, die einen Raum ergeben (also relaiv wenig und überschaubarer Code). Ich stell heute abend mal den Code hier her. Vielleicht findet ja jemand eine grundsätzliche Bremse.

    [ Dieser Beitrag wurde am 03.02.2003 um 11:07 Uhr von Titus editiert. ]



  • Was für ne Grafikkarte hast du in dem Rechner ?
    Bedenke das die 3D Leistung von Tomb Raider (sofern Software-Gerendert) an deiner CPU hängt und bei OpenGL Anwendungen an deiner Grafikkarte



  • TombRaider hat DirectX verwendet, deine App OpenGL.
    Laufen anderen OpenGL Spiele auch schlecht ? Wenn ja besorg dir mal ein Treiberupdate !



  • Original erstellt von Headhunter:
    TombRaider hat DirectX verwendet

    Falsch. TombRaider hat gar nichts verwendet, nur DOS.



  • Soweit ich mich erinnern kann gabs auch ne Glide version von Tomb Rider. Und es ist ganz sicher die Graka aber nicht der Treiber der das so langsam werden lässt. Ganz einfach es ist entweder ne stink normale Karte ohne 3D Beschleunigung oder einfach nicht kompatible mit OpenGL und dann wird es von der CPU berechnet die mit 233 MHz auch nicht grad die schnellste ist. Hab mit nem P3 500 auch nicht geschafft ohne 3D Karte ein Dreieck mit OpenGL zu zeichnen mit mehr als 1 - 2 FPS.

    [ Dieser Beitrag wurde am 03.02.2003 um 17:21 Uhr von Tobiking editiert. ]


  • Mod

    zu testen ob es in software-emuliert wird oder per graka läuft schalt einfach bilineares filterin ein oder aus, das hat bei mir unter software bei opengl extreme performance unterschiede gebracht (nein, das löst dein problem nicht, aber du wüstest vielleicht mehr)

    rapso->greets();



  • Hab nochmal nachgeforscht
    ( http://tnlc.com/eep/tr/petition/tru3dap.html )

    Teil1 war wirklich rein CPU gerendert - Also hängts wohl an der miesen OpenGL Performance deiner Grafikkarte



  • Hallo,
    hier ist eine abgespeckte Version http://www.johannes-raida.de/PerformanceTest.zip
    (46 KB).

    Auf einem Pentium III Celeron mit 1000 MHz (Grahikkarte unbekannt)
    läuft es bei mir mit ca. 101 FPS.
    Auf einem Pentium II mit 233 MHz (Grahikkarte ebenfalls unbekannt)
    läuft es mit 1,37 FPS.

    Ich habe das mal in das Framework von NeHe reingesteckt. Wenn mir jemand
    sagen kann, warum das nicht flüssig läuft, oder ob in dem Code grobe Fehler stecken, wäre ich sehr dankbar.



  • Etwa 101 FPS bei mir
    System:
    P4 @ 2000 mhz
    ATI Radeon 7000
    256 MB DDR Ram

    Seltsamerweise scheint das ganze auf ~ 100 Frames limitiert zu sein. Denn eigentlich sollten da etwas mehr rausspringen bei den Paar Polys 🙂
    Ich schau mir gleich mal den Sourcecode an



  • Hab mir das mal schnell angeguckt und mit dem was ich erkannt habe sollte da keine Begrenzug drin sein. Maximal die FPS Berechnung falsch also ich hab bei der nicht durchgeblickt. Aber es ist swoeit ich sehe vsync nicht aus deswegen werden es nicht mehr als die Wiederholrate des Monitors.



  • @cpp_junky:
    v-sync?!


Anmelden zum Antworten