Level-Editor mit Raytracer



  • Jo, deutlich besser! 🤡 👍

    Aber wat dat geilste ist:

    Das einzige was Du z.Z. an Deinem Projekt weiter entwickelst ist die "About..."-Box!! 😃 😃 😃 😃 👍 👍



  • Jo, irgendwie lächerlich 😃
    Aber es macht so viel Spaß, Raytracer zu programmieren. Vielleicht baue ich irgendwann mal eine richtige Library daraus, mit 3DNow!-Optimierung, Octrees etc.. Und dann irgendwann ein Spiel, das mit Realtime-Raytracing läuft.



  • TomasRiker schrieb:

    Jo, irgendwie lächerlich 😃
    Aber es macht so viel Spaß, Raytracer zu programmieren. Vielleicht baue ich irgendwann mal eine richtige Library daraus, mit 3DNow!-Optimierung, Octrees etc.. Und dann irgendwann ein Spiel, das mit Realtime-Raytracing läuft.

    Et wird echt Zitt...! 🤡 👍



  • Sieht echt gut aus.
    Wie entstehen denn später aus den 2D Polygonen im Editor die 3D-Level im Spiel?

    TomasRiker schrieb:

    Vielleicht baue ich irgendwann mal eine richtige Library daraus, mit 3DNow!-Optimierung, Octrees etc.. Und dann irgendwann ein Spiel, das mit Realtime-Raytracing läuft.

    Nimm den Raytraycer doch gleich für das Spiel jetzt. Bis das fertig ist, haben wir eh alle einen Athlon 128 HT FX YZ 33GHz 😉 Und wenn doch nicht, dann bringst Du einfach einen Beta-Leak raus und sagst, dass das Spiel leider aufgrund von Sicherheitslücken um einige Jahre verschoben werden muss (so wie es die Profis eben machen).



  • 0x00000001 schrieb:

    Sieht echt gut aus.
    Wie entstehen denn später aus den 2D Polygonen im Editor die 3D-Level im Spiel?

    Durch Extrusion. Die Dicke lässt sich ja über das Kontextmenü bestimmen (von 1 bis 10). Man verschiebt das Polygon immer ein Stückchen entlang der z-Achse und "verkleinert" es. Verkleinern heißt hier nicht Skalieren, sondern das Verschieben der Eckpunkte gegen die Normalenvektoren, die sie im Polygon einnehmen.

    Nimm den Raytraycer doch gleich für das Spiel jetzt. Bis das fertig ist, haben wir eh alle einen Athlon 128 HT FX YZ 33GHz 😉 Und wenn doch nicht, dann bringst Du einfach einen Beta-Leak raus und sagst, dass das Spiel leider aufgrund von Sicherheitslücken um einige Jahre verschoben werden muss (so wie es die Profis eben machen).

    Hehe, das wär' ne Idee, aber so lange will ich nicht warten ;). Was aber sehr wohl möglich wäre: Raytracing irgendwie mit Vertex- oder Pixelshadern implementieren. Dann könnte man auch die Hardware sinnvoll einsetzen und der Hauptprozessor hätte mehr Zeit für die restlichen Dinge.



  • Es gibt wieder ein Update! 🙂
    Man kann nun sehr viele Parameter des Raytracers in der Benutzeroberfläche einstellen. Wer sich für Raytracing interessiert, dem dürfte das viele Dinge klarer erscheinen lassen.
    Man kann nun einstellen:

    - Animation ein/aus
    - schrittweise die Animation abspielen
    - Lichter ein/aus (einzeln)
    - maximale Render-Tiefe (Reflexionen, Reflektionen von Reflexionen...)
    - adaptive Subsampling ein/aus
    - Gittergröße (von 1x1 bis 64x64 Pixel)
    - Subsampling-Unterteilungslinien ein/aus

    Quellcode ist natürlich auch wieder dabei! 💡

    Bild:
    http://www.scherfgen-software.net/misc/missile_ii_raytracer_2.jpg

    Download:
    http://www.scherfgen-software.net/misc/missile_ii_level_editor.zip



  • TomasRiker schrieb:

    Quellcode ist natürlich auch wieder dabei! 💡

    Top! 🤡 👍

    Da bedank' ich mich jetzt mal im Namen aller, die sich das reinpfeifen, für:

    Danke, David! *imkanonträller*

    🙂 🕶 👍

    P.S.: Auch, wenn ich sicher nicht dazu gehör'... 😉



  • Das war's aber noch lange nicht! 🤡
    Die neue Version zeigt auch die Statistiken an. Außerdem wurde die Auflösung erhöht, aber die Framerate ist trotzdem noch gestiegen, weil ich die Algorithmen noch entscheidend optimieren konnte.

    Bild:
    http://www.scherfgen-software.net/misc/missile_ii_raytracer_3.jpg

    Download:
    http://www.scherfgen-software.net/misc/missile_ii_level_editor.zip



  • Bau doch mal noch Texturen ein!

    Bye, TGGC (Der Held ist zurück)



  • Ja, das hatte ich vor. Heute habe ich erste Experimente damit gemacht, aber ganz so einfach ist es nicht. Man wird praktisch "gezwungen", die Texturen von der Grafikkarte rendern zu lassen, denn sonst würde das Adaptive Subsampling nicht mehr richtig funktionieren.
    Die Texturen von der Hardware rendern zu lassen, hat Vor- und Nachteile: ein Vorteil ist, dass es schnell ist und dass man sogar schöne Filter benutzen kann, ohne auf das Subsampling zu verzichten (ich verwende ja OpenGL, um die einzelnen Quadrate zu zeichnen, und dann werden die Texturkoordinaten automatisch mit interpoliert).
    Nachteil: es ist mit mehr Aufwand verbunden als einen Software-Texture-Sampler zu schreiben (der aber, wie schon gesagt, nicht gut funktionieren würde - die Texturen wären dann allesamt verwaschen), und man muss einige Limitierungen in Kauf nehmen.

    Ich hatte am Anfang keine Texturen mit eingeplant, darum ist es jetzt sehr schwer, sie noch einzubauen. Die werden dann integriert, wenn ich meine RTRT-Library schreibe (dann schreibe ich sowieso alles neu).

    Texturen auf einer Ebene klappen schon (d.h. nur "direkt" sichtbare). Wenn sich etwas in einem Objekt spiegelt, dann hat das Gespiegelte aber noch keine Textur. Entweder mache ich das mit Multi-Pass-Alpha-Blending, oder mit Multi-Texturing.


Anmelden zum Antworten