2D Renderer



  • Ich möchte in nächster Zeit evtl. ein kleines Projekt "nebenher" verfolgen. Es handelt sich dabei um einen Renderer in 2D, es gibt auch eine vorläufige Webseite:
    http://www.fh-merseburg.de/~roesch/trash/prev/2d_bench.htm

    Gibt es einige Leute hier, die es interessant fänden an einem solchen Projekt mitzuwirken (Wie man sieht, noch ein Html Könner wär wahrscheinlich auch nicht schlecht 😉 )? Ich habe versucht, die Sache grundsätzlich relativ modular aufzubauen, so das man einfach neue Primitives oder Renderer hinzufügen kann, wäre daher für Teamarbeit geeignet. Ausserdem gibts bei der Menge an Mathematik auch immer viel an Optimierung zu tun.

    Also wenn Interesse besteht, dann meldet Euch mal!

    Bye, TGGC



  • Also, ich bin kein Mathe-Ass und so .. aber ich denke ich weiss wie man zu optimieren hat.
    Leider stecke ich gerade voll im Abi-Stress, deshalb hab ich absolut NULL Zeit.
    Hab mir das ganze mal angeschaut und auch durch nen Profiler gejagt.
    Du hast einen fundamentalen Fehler gemacht !
    Ich hab zwar nicht ganz durchgesehen, aber:
    Du speicherst irgendwelche Objekte (scheint ne Menge zu sein :D) in nem Vector ...
    Was dir hätte auffallen müssen als du die Kommentare geschrieben hast ist: Du gehst IMMER iterativ durch diesen Vector. Und dieser Enorme LookUp-Overhead macht nen Grossteil der Performance aus (laut Profiler).

    Also ersetze einfach mal den Vector durch ne Liste und benutze die Iteratoren, und statt Get(0) natürlich .begin

    Ich denke das dürfte einiges bringen !!!

    Hab leider durch das Abi keine Zeit um das auszuprobieren, wäre also nett wenn du das mal machen könntest, poste bidde auch wieviel das ganze dann gebracht hat. Hab nämlich noch nicht herausgefunden wo man da irgendwo die Geschwindigkeit ablesen kann 😃
    THX



  • Habs mir gerade in einer Lernpause nochmal kurz angeschaut.
    Wäre cool wennde ne ungefähre Beschreibung des Algo's liefern könntest.

    Statt:

    // iterate over any objects

    vielleicht auch schreiben was denn dann mit den Objekten passiert !

    Also, soweit ich den Algo durchschaut habe:
    Für jedes Feld schaun welche Objekte sichtbar sind.
    Für jedes Feld berechnen welche Farbe es erhält auf Grund der Objekte die sichtbar sind.
    (Ein Feld wäre ein Pixel)

    Falls dies richtig sein sollte, wieso brauchst du diesen Overhead an speicher.
    Du speicherst für jeden Pixel eine Liste mit Objekten anstatt gleich die Farbe zu berechnen, abhängig von der Entfernung, der Ausgangsfarbe und der Farbe die durch andere Objekte hinzukommt.
    Das würde zumindest die 2te Grosse Liste sparen und einen dieser 2 riesigen Loops !
    Schau mal ob sowas möglich wäre, weiss net ob das vielleicht ungünstig ist wegen dem Lichtberechnungsalgo den du benutzt oder so ...



  • Finde nicht, das dies der Platz ist, die Implementationsdetails zu diskutieren, dazu gehe besser hierhin:
    (überflüssige) Demo

    (dort ist auch eine Antwort)



  • Bis jezt hat sich leider nur einer gemeldet! Ich wollte nochmal darauf hinweisen, das es kein Fulltimejob oder sowas werden soll, sondern nur so ein Funprojekt nebenher, das auch keine Eile hat. Da die Sache schön modular aufgebaut werden soll, kann man auch in 2-3 Stunden pro Monat immer eine Ecke beitragen.

    Na, immer noch keiner?


Anmelden zum Antworten