[Läuft] Dash - Lightning fast 2D(/3D?) Engine

  • Historie:

    Development Snapshot Build 13/2/13
    NUR 2D Funktionen!!!

    ______________________________________________________________________________________________________

    Dash wird eine 2D-3D-GrafikEngine. Sie wird sehr schnell, durch Hardwarebeschleunigung und direktes Rechnen in der GPU. Sie wird Abstand nehmen von pixelated Graphics, die mit dem Anti-Aliasing Prozess nur den Prozessor belasten und gestochen Scharfe Bilder erzeugen, ohne dabei die CPU unnötig zu belasten.

    Die Technik, auf der Dash basiert ist höherwertig als bisherige native AutoIt 2D Engines wie GDI/GDI+ API und Konsorten. Laut Microsoft und AutoIt Enticklern wird diese Technik GDI APIs in den nächsten Jahren komplett ablösen.

    Dash soll diese Technik für normale AutoIt-User, die keine Objektcracks sein wollen verständlich und einfach nutzbar machen.

    Das Release ist für nächstes Jahr geplant. Ausführliche Hilfe und Tutorials wird es geben. Screenshots folgen.

    7 Mal editiert, zuletzt von minx (13. Februar 2013 um 12:15)

  • Na das hört sich doch mal nett an. Werd ich mir sicherlich genauer anschauen, sollte die erste Version draussen sein.

    Gruss Shadowigor

  • Jedenfalls: Beta's meldet euch :D.


    Merke: Post besser durchlesen :D

    Bei einer Beta wäre ich natürlich auch dabei, falls du noch wen brauchst.

  • Erstmal Danke für die ganzen Anmeldungen zum Betatesten. Ein paar Leute haben ja schon eine winzig kleine Vorschau davon gesehen ;)

    Generell ist es möglich, damit Shader zu erstellen. Dennoch ist das nicht für das erste Release geplant. Vlt. später im Verbund mit 3D, aber das ist noch Zukunftsmusik ;)

    MfG

  • Zitat von Minx

    Jedenfalls: Beta's meldet euch .


    *meld*
    Die Funktionen sehen richtig toll aus (auch wenn kein normaler Mensch auch nur 1/3 davon benutzen wird :D )
    Wenn das auch noch einigermaßen schnell läuft, bietet das GDI+, QuickDraw und Irrlicht richtig Konkurrenz :rock:

  • Aktuell hab ich grade ein paar rudimentäre Bitmapbefehle eingebaut, und sie funktionieren zum Glück ;) .

    Die Funktions(namen) sind aber noch nicht so universell wie sie sein sollten :P

    MfG

  • Eine UDF ist nur dann gut, wenn sie einfach zu verwenden ist.
    Das sieht man z.B. an der FASM UDF, oft benutzt man einfach AssembleIt, obwohl es "nur" ein wrapper ist (zumindest bis der Code läuft. Dann DllCallAdress oder CallWindowProc).

    Um GDI+ Konkurrenz zu bieten muss nicht (nur) die Geschwindigkeit überboten werden, sondern die Handhabung mindestens ebenbürtig sein.
    Die Geschwindigkeit ist z.B. bei den GDI Befehlen um einen großen Teil höher, dafür ist die Handhabung oft komplizierter.
    Denauso mit ASM. Damit kann man nochmals wesentlich schneller Zeichnen (oder mit Andys Grafikkartenkernels), aber in der Anwendung ist das zu kompliziert um es effektiv einzusetzen.

    Daher gilt wie immer:
    Wenige Befehle müssen viel bewirken ohne dabei die Vielfältigkeit oder Geschwindigkeit zu stark leiden zu lassen.
    Es muss klar ersichtlich sein wie man ein Problem zu lösen hat. (z.B. Ich will ein Rechteck Zeichnen. -> Puffer -> Brush -> DrawRect ?)

    Ob ich groß Testen kann (oder will) weiß ich noch nicht.
    Ich denke, dass ich mir irgendwann mal eine eigene kleine 2D Engine bauen werde. (Basic + ASM = Einfach + Schnell)
    (Bisher war ich ja lange GDI Anhänger, aber dieser Scheiß mit dem Alphakanal der zwangsweise vormultipliziert wird und damit einen Informationsverlust bewirkt regt mich zu sehr auf um daran festzuhalten. Und GDI+ ist leider so langsam...)

  • @Marsi Sry, wenn ich dir jetzt nehe gehe, aber dein Beitrag hat reilich wenig Inhalt. Klar ist es mein Anliegen die UDF einfach und mächtig zu halten. Sie fungiert ja als "Wrapper mit Extrafunktionen" für DirectX in Verbindung mit AuObj. Einfach Befehlsbezeichnungen sind ja klar das Ziel, das ist selbstverständlich.

    Zu der Geschwindigkeit lies bitte die MS Referenz und schau dir auch den Interoperate Artikel an, in dem klar wird, das sich diese UDF auch mit u.a. GDI(+) verbinden lässt. Das ist aber nicht das vordergründige Ziel. Ich kann nur wiederholen, es ist die intiuitve Bedienbarkeit die eine UDF / Engine benutzbar macht. Das ist, meine ich, abgesehen davon, dass es in AutoIt sehr gut zu benennen ist, selbstverständlich.

    Ein Beispiel:

    Rect: "Brush->(Fill)Rect", das ist universell für Solids als auch Gradients und sogar für:
    Bitmap aus Binary: "BitmapBrush->Rect (Maße)->Drawrect". Ich finde das ist sehr einfach zu verstehen ;)

    MfG

  • Ich wollte damit nur vor etwas warnen was ich selbst schon gemacht habe.
    Etwas sehr gutes/schnelles, aber sehr unverständliches was dann außer mir selbst niemand versteht oder einsetzt.

    Das sollte keine Kritik, sondern ein Hinweis sein.

    Wenn ich z.B. "AuObj" sehe verbinde ich damit direkt (mindestens) eine weitere UDF die nicht im Standard ist, aber benötigt wird.

  • Wird von der Dash UDF inkludiert. Kannst du auch alles in eine Datei packen, aber die Methoden müssen sowieso extern gespeichert werden. Die Funktionen direkt einzubauen wäre auch möglich, ist aber ein wenig ungünstig.

    Trotzdem hat die UDF einen einfachen Syntax und ist schnell. Klar ist die AutoItObject UDF kein Standard, aber unbendingt notwendig und im Paket dabei.

  • Wollte nur mal Bescheid sagen, dass das Projekt auf jeden Fall noch läuft.

    Des weiteren gibt es eine kleine Neuerung: Es wird höchstwahrscheinlich auch eine 3D Engine. Erste Test mit MidPoly Modellen liefen flüssig und gut, die ersten Zeichenfunktionen für 2D stehen auch schon.

    Das Release dann wahrscheinlich nächstes Jahr.

  • Melde mich auch mal als Betatester wenn du noch welche gebrauchen kannst :)

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin