AutoIt-only 3D Engine. Mit Farb-Shading, Models aus Dateien, Rotation, Zoom, uvm.

  • [autoit]

    #cs

    [/autoit][autoit][/autoit][autoit]

    Eine kleine große 3D Engine!
    Wer braucht schon GDI+? ^^ . Diese Engine ist komplett in AutoIt verfasst und nutzt keinen
    einzigen DLL Call zu OpenGl, DirectX, GDIPlus oder anderem.

    [/autoit][autoit][/autoit][autoit]

    Features
    - Fast backbuffered polygon drawing (200FPS @ 4GHz, 70-90FPS @ 1,7GHz)
    - Translation
    - Rotation
    - Zooming (also past z0)
    - Light-effected flat shading
    - CAD-like border-highlighting OR borderless shading
    - Back-Face Culling and Z-Odering algorithms
    - Variable shade-intensity (!)
    - Fog / View Distance emulation
    - OWN 3D model format: 3DA. A lot like Wavefronts OBJ, easy to use (pro: Doesn't need to be triangulated. Polys could contain up to 18 points!)
    - OWN model loader / parser
    - Scaling
    - <300 Lines of code
    - and what you're going to add ;)
    EndFeatures

    [/autoit][autoit][/autoit][autoit]

    #ce

    [/autoit]

    Zur GDI+ Version springen

  • Wenn du noch eine Texture drauf packen kannst, dann AAAAAAAAMMMMMMMMMMMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIGGGGGGGGGGGGGAAAAAAAAAAAAAAAA! :rock:

    Ansonsten top! :thumbup:

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hab was getestet, sollte ein Kasten mit Loch werden.
    Irgendwie stimmen da die Überblendungen nicht.

    Spoiler anzeigen

    Wenn man die 2 großen Flächen entfernt sieht man, dass die 4 inneren alle korrekt sind.
    Irgendwie wird manchmal die hintere Große Fläche vor die kleinen gezogen. (Vermutung !!!).

    Aber schonmal sehr löblich, dass keine Polygone erforderlich sind :P

  • Zitat

    Aber schonmal sehr löblich, dass keine Polygone erforderlich sind


    As you wished, master :P

    Dein Modell schau ich mir später mal an. ^^ . Schön, dass das 3D Format so ohne Doku schon verständlich ist ^^

  • Schöne Arbeit minx! :D
    Was mir nur auffällt, das ganze ruckelt ziemlich!

    Bei mir sind es mal 120 FPS und dann wieder 90 FPS...


    Für das menschliche Auge reichen ja nur 60 FPS...
    Da könnte man doch den Schleifendurchgang regulieren oder nicht?
    Dann würde das ganze doch flüssig laufen?

    Wäre nur ne Idee! :)

    Einmal editiert, zuletzt von Yjuq (13. April 2013 um 04:54)

  • Es ruckelt eigentlich nur, wenn im Hintergrund andere anspruchsvolle Programme (Browser, Videos, etc.) laufen.

    Um die Framerae zu begrenzen kannst du einfach die While-Schleife zur Funktion machen und sie per Adlib mit 1000/Framerate registrieren.

  • Ruckelt bei mir (i3 @3.1 GHz (2 Kerne)) eigentlich überhaupt nicht, durchgehend >200 FPS :)
    Aber - Gibts irgendwie ne Möglichkeit Kantenglättung reinzumachen ?

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Käntenglättung gäbe es nur durch Verwendung von GDI+ . Mal sehen ob ich mich dazu überreden lasse ^^

    PS: 2 Kerne sind dabei auch nicht besser. AutoIt kann immer nur einen Kern auslasten ;)

  • Käntenglättung gäbe es nur durch Verwendung von GDI+ . Mal sehen ob ich mich dazu überreden lasse

    Postprocessing? Man rendert erst in einen Buffer und diesen dann noch einmal mit entsprechenden Effekten in einen zweiten.

    Bei der Irrlichtengine sind zwei Softwarerenderer dabei, wobei Burningsvideo echt gut ist und der andere sehr einfach. Unter Umständen kannst du da ein paar Tricks abschauen (Texturen etc).

  • Ich wollte da jetzt keine große Sache draus machen. Wenn ich ernsthaft eine 3D Engine entwickeln wollte, so würde ich sowieso andere Techniken verwenden :P . Mein Anliegen war es nur, zu zeigen, was mit dem eigentlich langsamen Graphic-Control möglich ist, ohne Verwendung von anderen Befehlen oder weiteren Befehlen aus GDI ^^

  • Hi!
    Sehr einfach, sehr schön!
    GENAU SO (einfach) muss das sein^^

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (13. April 2013 um 17:01)

  • Sehr schön, gerade das "CAD-Highlighting" finde ich sehr gut!

    Ich hab eben mal ein wenig rumgespielt (mit den FPS) und habe auf 60 gestellt. Angezeigt warden mir 12. Trotzdem läuft alles einwandfrei flüssig, das könnte man vllt noch ändern ;)

    Ansonsten ein S U P E R Projekt.

    Gerade für ein kleines Mathe Programm ist das praktisch. Damit kann ich (als eingebettetes Fenster) gleich komplexe Figuren zur veranschaulichung darstellen, und das ohne eine riesige engine einbinden zu müssen; danke dafür.

  • Sehr nette Idee :).
    Funktioniert unter meinem Ubuntu Laptop ganz gut mit 50-60fps. Es flackert nur ab und zu ein bisschen ganz kurz in der Mitte (kann aber auch an Wine liegen). Die GDI+ Version läuft wesentlich langsamer mit 10fps.
    Bin echt gespannt was damit so alles angestellt wird :thumbup:

    Nur keine Hektik - das Leben ist stressig genug

  • 0 Lags, konstant 160 - 170 FPS. Sehr gute Arbeit.

    Darf ich dabei mal eine Frage stellen? Ich habe nun schon einige 3D Anwendungen hier gesehen, die allerdings immer optisch echt grausam waren für den heutigen grafischen Stand. Das man es nicht mit den Top-Spielen vergleich kann ist mir bewusst, aber dieses Beispiel wiederrum sieht sehr scharf und gut aus. Ist es nicht möglich konstant so eine geile Grafik für Spiele mit AutoIt zu halten?

    Grüße Yaerox

    Grüne Hölle

  • 0 Lags, konstant 160 - 170 FPS. Sehr gute Arbeit.

    Darf ich dabei mal eine Frage stellen? Ich habe nun schon einige 3D Anwendungen hier gesehen, die allerdings immer optisch echt grausam waren für den heutigen grafischen Stand. Das man es nicht mit den Top-Spielen vergleich kann ist mir bewusst, aber dieses Beispiel wiederrum sieht sehr scharf und gut aus. Ist es nicht möglich konstant so eine geile Grafik für Spiele mit AutoIt zu halten?

    Hier werden wenige Dreiecken nur gerändert. Mit Irrlicht hätte man bestimmt 1500 FPS für die gleich komplexen Grafiken.

  • Ich habe nun schon einige 3D Anwendungen hier gesehen, die allerdings immer optisch echt grausam waren für den heutigen grafischen Stand. Das man es nicht mit den Top-Spielen vergleich kann ist mir bewusst, aber dieses Beispiel wiederrum sieht sehr scharf und gut aus.

    Das waren meines Wissens nach aber nur Tests beziehungsweise einfache 3D Koordinatensysteme zur Veranschaulichung von mathematischem Zeug. Das mit Spielen zu vergleichen ist Schwachsinn.

    0 Lags, konstant 160 - 170 FPS. Sehr gute Arbeit.

    Ist es nicht möglich konstant so eine geile Grafik für Spiele mit AutoIt zu halten?

    Ich behaupte jetzt einfach mal "Nein, ist es nicht."
    Wenn man jetzt einfach mal ein etwas komplexeres¹ Model lädt (siehe Anhang), dann sinkt die Framerate auf 1², außerdem treten während der Animation hin und wieder Grafikfehler auf. AutoIt ist also schlichtweg zu langsam für sowas, aber genau deswegen haben wir ja auch eine OpenGL UDF bzw. "inline" Assembly.

    ¹ "komplexer" heißt in diesem Fall 640 Vertices, also immer noch "low poly"
    ² Das Beispiel mit dem Würfel hat bei mir ca. 80 FPS, also hätte mein Model bei dir vielleicht 2 oder 3, was aber trotzdem weit von flüssig entfernt wäre. ^^