DGL
https://delphigl.com/forum/

Andorra 2D
https://delphigl.com/forum/viewtopic.php?f=13&t=6717
Seite 1 von 2

Autor:  igel457 [ Fr Jun 29, 2007 20:46 ]
Betreff des Beitrags:  Andorra 2D

Andorra 2D

Was ist Andorra 2D?
Nein, Andorra 2D hat nichts mit dem kleinen europäischen Staat "Andorra" zu tun. Wie das "2D" im Namen auch schon erraten lässt, handelt es sich um eine 2D Engine. Diese wird für Delphi und Lazarus (Freepascal) entwickelt und zwar um das bekannte und oft verwendete DelphiX abzulösen (was an DelphiX nicht so toll ist lest ihr am besten hier). Andorra 2D hat einen ähnlichen Aufbau wie DelphiX - das Spriteengineinterface ist sogar zu 99% das Gleiche.

Features
Was ist nun das Besondere an Andorra 2D?
- Hardwarebeschleunigung
- Verwendung von Plugins zur Grafikdarstellung wodurch OpenGL, DirectX oder sogar die GDI mit Andorra 2D verwendet werden können
- Integrierte und beschleunigte Spriteengine
- Integrierte Zoomfunktion in der Spriteengine
- Modularer aufbau von den Loadern für Texturformate, es können einfach eigene Hinzugefügt werden
- orthogonale und perspektivische Projektionsmatrix
- Integration von 3D-Modellen (die Loader sind noch nicht geschrieben)
- Partikelsysteme
- Lichter
- Clipping/Splitscreens
- 2D Physikengine mit Newton
- Integriertes "Hardware Canvas"
- Mächtiges, voll Skinbares GUI-System
- Nicht überladen - man wird nicht zum benutzen bestimmter Features gezwungen (wie zum Beispiel Datenpackages, wie dies in anderen Engines der Fall ist)
- Opensource, entweder unter der CPL oder der GPL verwendbar
- Mächtiges Bundle von Editoren und Tools
- Deutsche Tutorials
- Viele Demos
- Und natürlich die Banalitäten, die man sich von einer 2D-Engine so wünscht: Rotation, Additives Zeichnen, Skalierung, BitBlt, Texturzugriffe et cetera

Da die Plugins nur um die Basisfunktionalitäten der Grafikschnittstellen Wrapen, könnte man die Plugins theoretisch für eine Hybrid 3D-Engine verwenden

Mehr Infos...
...sowie Tutorials und weitere Links...
gibt es auf der Website: http://andorra.sourceforge.net/

Wichtig:
Falls ihr ein Programm mit Andorra 2D geschrieben habt/daran schreibt, dann wäre es schön wenn ihr mir Bescheid sagen könnt. Dann bekomme ich nämlich mal einen Überblick, wer die Bibliothek nun überhaupt verwendet und außerdem kann ich auf meiner Website Screenshots von eurem Projekt einfügen und auch auf eine eventuelle Website eures Projektes verlinken.

Ich freue mich riesig über jede Art von Feedback und hoffe meine Engine kann jemand gebrauchen,
Andreas

Dateianhänge:
Dateikommentar: Newton in Action
physics2.png [104.39 KiB]
57-mal heruntergeladen
Dateikommentar: Additives Blending
img1.png
img1.png [ 9.14 KiB | 20826-mal betrachtet ]
Dateikommentar: Der Partikeleditor
pared2.png [58.5 KiB]
56-mal heruntergeladen

Autor:  igel457 [ Fr Jun 29, 2007 21:01 ]
Betreff des Beitrags: 

Version 0.2 ALPHA

Full Package:
Beinhaltet alle Demos (für Windows vorkompiliert), die Prerequisiten und den Sourcecode
Leider ist in dieser Version nur das DirectX-Plugin vorhanden. Wer das OpenGL Plugin nutzen möchte, muss sich dieses über CVS herunterladen. Der Link zu CVS Repository findet sich auf der Website und der SF-Projekt Seite

Download: http://downloads.sourceforge.net/andorr ... irror=osdn (8,57 MB)
Überblick über weitere Versionen: http://andorra.sourceforge.net/index.ph ... =downloads

Autor:  igel457 [ So Okt 07, 2007 10:05 ]
Betreff des Beitrags: 

Version 0.2 ALPHA 2

Full Package:
Beinhaltet alle Demos (für Windows vorkompiliert), die Prerequisiten und den Sourcecode.

Neue Features seit der letzten Version:
- TAdSpriteEngineEx
- TAdSetup (Einstellungsdialog)
- Voll Funktionsfähiges OpenGL-Plugin
- Viewports
- JPEG kann geladen werden
- PixelCheck bei Sprites
- Neue Features in TAdGUI
- Editoren wurden Teilweise überarbeitet
- Überarbeiteter TPerformanceCounter
- Einige neue Demos
- Einige Bugfixes

Download: http://downloads.sourceforge.net/andorr ... irror=osdn (10 MB)
Überblick über weitere Versionen: http://andorra.sourceforge.net/index.ph ... =downloads

Autor:  igel457 [ Mo Dez 24, 2007 10:50 ]
Betreff des Beitrags: 

Andorra 0.3 BETA

Download: Version 0.3 BETA, ZIP, 11,7 MB
Download: Version 0.3 BETA, GZ, 11,7 MB

Wichtig:
Leider gab es einige Änderungen, die die Partikel-Dateien zur Vorgängerversion inkompatibel gemacht haben. Bitte schreibt euch am Besten eure alten Werte auf und erstellt eine neue Partikel Datei.
Außerdem wurde das Fontsystem umgeändert, was sich auch auf die GUI auswirkt. Falls es Probleme beim Laden von alten GUI-Dateien gibt, bitte einfach den "fontdata" Parameter aus der XML-Datei löschen.

Wichtig:
Ich möchte betonen, dass es sich um eine Betaversion handelt. Da ich einen großen Teil der Engine umgeschrieben habe, kann diese Version unter Umständen fehlerbehafteter sein als die letzte Version. Daher bitte ich euch diese Version zu testen und mir Fehler und Verbesserungsvorschläge zukommen zu lassen.

Was ist neu?
Code:
  1.  
  2. [*] [b]Komplette Neuentwicklung des Canvas[/b]
  3.    [+] Zeichnen von texturierten Flächen
  4.    [+] Variieren der Stiftdicke
  5.    [+] Zeichnen von Pfeilen
  6.    [+] Zeichnen von Ellipsen
  7.    [+] Zusammenfassen von Objekten in "Displaylisten", die rotiert, skaliert etc. werden können.
  8.    [-] Zeichnen von Polylinien
  9.    [*] Canvas und dazugehörige Konstanten in Unit "AdCanvas"
  10. [*] [b]Komplette Neuentwicklung des Bitmapsystems[/b]
  11.    [*] Unit AdVCLFormats kümmert sich um das Laden von VCL-Grafikformaten
  12.    [*] TAdBitmap befindet sich in der Unit AdBitmap
  13.    [*] TAdBitmap ist abgeleitet von TAdBitmapClass, welche keinerlei Abhängigkeiten (außer zu System) hat
  14.       [*] 40KB kleinere Plugins
  15. [*] [b]Komplette Neuentwicklung des Fontsystems[/b]
  16.    [+] TAdTypeSetter kümmern sich um das setzen des Textes
  17.    [+] TAdFontGenerator kümmert sich um das generieren eines Bitmapfonts
  18.      [*] TAdStandardFontGenerator aus der Unit AdStandardFontGenerator kümmert sich um das generieren von VCL-Bitmapfonts
  19.    [+] TAdFontFactory kümmert sich um das erzeugen von TAdFont Objekten
  20.    [+] Text kann rotiert, skaliert etc. werden
  21.    [-] Shadow Blur funktioniert noch nicht
  22. [*] TAdFontCollection heißt jetzt TAdFontList und steckt in AdFontList
  23. [*] AdPerformanceCounter steckt aufgrund Platformabhängiger aufrufe in einer eigenen Unit "TAdPerformanceCounter"
  24. [+] Die TSpriteEngineEx kann das Spielfeld nun auch Rotieren
  25. [+] Texturfilter und Mipmaps
  26.    [*] Aufruf von TAd2dTexture.LoadFromBitmap wurde geändert - nun müssen Texturparametermitgegeben werden, die spezifizieren, welche Filter verwendet werden sollen
  27. [*] Neue Demos (SimpleText, TextDemo, Spiral)
  28. [*] [b]Typendeklatarionen und Umwandlungsfunktionen befinden sich jetzt in der Unit AdTypes![/b]
  29.  


Zitat:
Source compatibility changes from version 0.2 to 0.3:
- A lot of type declarations moved from AdClasses to AdTypes
- Instead of TRect TAdRect is used, instead of TPoint TAdPoint. The Rect function is called TAdRect etc.
- WMF & EMF are not supported anymore
- TAdBitmap moved to the "AdBitmap" unit
- TAdPerformanceCounter moved to the "AdPerformanceCounter" unit
- TAdFontCollection was renamed to "TAdFontList" and moved to the "AdFontList" unit
- TAdFont.TextOutEx is done by modifing typesetter settings (see "SimpleText" demo)
- TAdCanvas.Polyline is missing
- You have to use a "TAdTextureParameters"-record when loading texture from a TAdBitmap



Es wäre schön wenn jemand diese Version ausgiebig Testen würde.

Viel Spaß damit,
Andreas

Autor:  igel457 [ Fr Jan 04, 2008 15:30 ]
Betreff des Beitrags: 

Andorra 2D 0.30 STABLE

Download:
Version 0.30 STABLE (ZIP): 9,43MB
Version 0.30 STABLE (BZ2): 8,69MB

Ab heute ist Andorra 2D 0.30 STABLE zum Herunterladen verfügbar. Wichtige Änderungen gegebüber der BETA Version:
  • Removed Bug in TAdCanvasQuad.Generate
  • Rewrote TAdCanvasLine.Generate
  • Removed TAdCanvas.BlendMode property. Use Pen.BlendMode and Brush.BlendMode instead.
  • Implemented "TAdPersistent" - a replacement for TPersistent from "Classes".
  • Removed Bug in TAdFont.Generate
  • added TAdBitmapBlur
  • added possibility of creating blured shadows
  • Removed bug in TAdFont.TextWidth/TAdFont.TextHeight -> Sizes are now calculated correctly.
  • Improved particle editor interface.
  • Removed bug in TAdPNGCompressor.Write


Die nächste Version wird 0.35 sein - dann endlich mit Linuxsupport. Dies wird durch verschiedene "TAdWindowFrameworks" ermöglicht. Ein NonVCL-Win32 Framework habe ich schon geschrieben (damit kann man endlich Spiele mit ~100kb Dateigröße erstellen), sowie eine VCL Anbindung. Gerade sitze ich an der OpenGL GLFW Version. Ein leeres OpenGL-Fenster kann ich damit unter Linux schon einmal erzeugen.

Viel Spaß mir der neuen Version,
Andreas

Autor:  igel457 [ Di Feb 05, 2008 15:06 ]
Betreff des Beitrags: 

Um diesen Thread nicht gänzlich in der Versenkung verschwinden zu lassen, berichte ich einmal darüber, an was ich gerade Arbeite...

Laut Roadmap schreibe ich gerade am Linux-Support. Das ist zwar richtig, allerdings beschreibt es nicht ganz was dafür alles getan werden muss/musste.

Als erstes musste ich natürlich Andorra 2D ein wenig umkrempeln. Um die Erstellung eines Fensters, um das zurückgeben eines Handles (falls das Ausgabefenster schon existiert) oder um die Bereitstellung eines OGL-Contextes kümmert sich nun eine abstrakte Klasse namens "TAdWindowFramework". Außerdem ist dieses für die Ereignisbehandlung zuständig.
Wie oben schon angedeutet gibt es diese "WindowFrameworks" in allen Formen und Farben. Da wären zum Beispiel:
  • TAdVCLWindowFramwork - Ein Windowframework für Windows und Delphi/Lazarus, welches die VCL/LCL zum erzeugen eines Fensters verwendet
  • TAdWin32WindowFramework - Ein Windowframework für Windows und Delphi, welches die pure Win32-API zum erstellen des Fenster verwendet
  • TAdGLFWWindowFramework - Ein crossplatform Windowframework für Delphi/Lazarus, welches die Bibliothek GLFW zum erstellen eines Fensters mit OGL-Context verwendet.
  • TAdVCLComponentWindowFramework - Ein Windowframework für Windows und Delphi/Lazarus, welches das Handle eines existierenden VCL/LCL-Controls zurückgibt. Dieses Framework schafft die Kompatibilität zu den vorherigen Versionen von Andorra 2D
  • TAdOGLContextLCLComponentWindowFramework - Wie oben, erzeugt jedoch auf dem angegeben Control ein Crossplattform OpenGL-Context und ist somit auch unter Linux zu verwenden

Nun kann man sich je nach Geschmack eines (oder auch mehrere) dieser Frameworks aussuchen und einfach in die Uses-Liste aufnehmen. Andorra 2D sucht dann automatisch ein passendes Framework aus. Standardmäßig ist unter Windows das "TAdVCLComponentWindowFramework" und unter Linux das "TAdOGLContextLCLComponentWindowFramework" eingebunden, lassen sich jedoch über einen Kompilierschalter entfernen.

Um das Eventmanagement zu ermöglichen, ist außerdem die Unit "AdEvents" mit Typ- und Konstantendeklarationen hinzugekommen.

Ein weiterer Schritt war das laden von Grafiken unter Linux zu ermöglichen. Dazu musste die Unit "AdLCLFormats" her. Super ist hierbei, das Lazarus bereits PNGs laden kann. Schlecht dabei ist, das unter Linux/GTK dessen Transparenz verloren geht. Deshalb habe ich noch jeweils eine Andorra-Anbindung für "DevIL" und "FreeImage" geschrieben.

Außerdem musste ich auch noch die Unit "JclSimpleXML" unter Lazarus zum laufen bringen, was mir nach ein bisschen Code umkopierer- und löscherrei geglückt ist. Die Unit ist nun als "AdSimpleXML" standardmäßig im "src" Verzeichnis von Andorra 2D vorhanden.

Ich lade gleich mal die aktualisierte Version ins CVS. Theoretisch sollte alles unter Linux laufen, praktisch muss ich das noch überprüfen. Eine Anleitung für das Kompilieren unter Lazarus gibt es dann auch bald.

Jetzt muss ich alles nur noch ein bisschen Testen und noch ein bisschen "schöner" machen.

Kommentare sind wie immer erwünscht,
Andreas

edit:
Diese Demo zeigt, wie man eine Andorra 2D Anwendung schreibt, die ohne Probleme mit Lazarus und Delphi unter Windows und Linux läuft: http://andorra.cvs.sourceforge.net/ando ... pleNonVCL/

Autor:  igel457 [ Mo Mär 03, 2008 20:51 ]
Betreff des Beitrags: 

Andorra Version 0.3.5

Endlich läuft Andorra 2D auch mit Lazarus unter Windows und Linux und vermutlich auch unter MacOS (wäre toll wenn das mal jemand testen könnte).

Eine Übersicht über alle verfügbaren Downloads der neuen Version gibt es hier:
http://andorra.sourceforge.net/index.ph ... =downloads


Folgende Dinge haben sich seit der letzten Version verändert:
- Einführung von Windowframeworks
- Eventmanagement von Windowframeworks
- Umstellen des AdGUIConnector auf Windowframeworks
- Umstellen der Plugins auf Windowframeworks
- Hinzufügen der Methode "TAdCanvas.Polygon"
- Einführen der Andorra Video Texture API
- Hinzufügen eines einfachen MPEG2-Video Decoders, der libmpeg2 verwendet
- Zusammenfassen aller Header in einem Lib-Verzeichnis
- Umprogrammieren der JclSimpleXML-Unit für Lazarus Kompatibilität, als AdSimpleXML hinzugefügt.

Viel Spaß mit der neuen Version, wäre toll wenn es mal jemand unter Linux ausprobieren könnte.

Außerdem gibt es neue Tutorials:
Lazarus und Andorra 2D: http://andorra.sourceforge.net/index.php?bb=lazarus1ger
Über Andorra 2D Windowframeworks: http://andorra.sourceforge.net/index.ph ... eworks1ger

Ich freue mich auf eure Erfahrungsberichte und massig Feedback, :wink:
Andreas

Autor:  igel457 [ Di Jul 01, 2008 13:46 ]
Betreff des Beitrags: 

Version 0.4 erschienen

Andorra 2D Version 0.4 ist da!

Es bringt ein neues Surface-System, Shader-Support (HLSL und Cg), nativen TGA und GZIP-Package Untersützung, neue GUI Komponenten, überarbeitete Partikelsysteme, besseren Lazarus und Linux Support, aktualisierte Dokumentation und noch viel mehr.

Eine komplette Liste mit allen Änderungen findet sich hier:
http://andorra.sourceforge.net/index.ph ... changelogs

Das Paket kann hier heruntergeladen werden:
http://andorra.sourceforge.net/index.ph ... =downloads

Wichtig:
Alle Benutzer von OpenGL sollten aufpassen: Andorra 2D verwendet nun einige Extensions, die Teilweise erst mit den letzten Grafikkartentreibern flächendeckend unterstützt werden. Die Grafikkarte muss in jedem Fall komplett DirectX 9 kompatibel sein.
Ich arbeite aber schon an einer Lösung...

Viel Spaß damit, ich bin jetzt erstmal eine Weile auf Urlaub,
Andreas

Autor:  igel457 [ Mi Dez 24, 2008 13:39 ]
Betreff des Beitrags: 

Version 0.4.5 erschienen
Pünktlich zu Weihnachten habe ich ein kleines "Geschenk" vorbereitet: Andorra 2D Version 0.4.5. Diese Version ist zum größten Teil eine Bugfix-Version, jedoch ist auch das eine oder andere Feature dazu gekommen.

Die wichtigsten Veränderungen im Überblick:
  • OpenGL-Modus funktioniert nun auch wieder auf älteren Grafikkarten
  • Verzerrte Texturen im DirectX-Modus wurden behoben (auf jeden Fall auf den meisten Grafikkarten)
  • Videoplayer-Komponente wurde erweitert (Acinerella-Plugin hinzugefügt, kann jetzt auch Formate wie MPEG, AVI etc. abspielen)
  • Andorra 2D goes GreenIT: Die neue "MaximumFrameRate"-Property des TAdPerformanceCounter hilft den CPU-Workload zu minimieren, Energie zu sparen und unseren Planeten zu retten.
  • Delphi 2009 Support.
  • andorra_conf.inc für zentrale Andorra 2D-Einstellungsverwaltung hinzugefügt
  • Problem mit Multicoreprozessoren und TimeGap (temporär) behoben


Eine komplette Liste gibt es hier:
http://andorra.sourceforge.net/index.ph ... changelogs

Wichtig:
Wenn ihr einen AMD-Prozessor besitzt und Probleme mit der Darstellung habt, so versucht bitte in der andorra_conf.inc den "DO_NOT_USE_3DNOW" Schalter zu aktivieren (die Applikation neu erzeugen, SHIFT+STRG+F9) und benachrichtigt mich über das Problem. Wenn ihr einen AMD-Prozessor (mit 3DNow!) habt und alles funktioniert, bitte auch sagen.

Download:
http://andorra.sourceforge.net/index.ph ... =downloads

Viel Spaß mit der neuen Version und frohe Weihnachten,
Andreas

Autor:  igel457 [ Do Jan 01, 2009 16:31 ]
Betreff des Beitrags: 

Da in der letzten Version ein Fehler in der XML-Bibliothek alle Editoren unbrauchbar machte (Zerstörung der XML Dateien), habe ich gestern eine neue Version 0.4.5.1 hochgeladen, die diesen Fehler (hoffentlich) beseitigt.

Alle Benutzer sollten dieses Update dringend herunterladen.

Autor:  igel457 [ Mi Jan 28, 2009 22:11 ]
Betreff des Beitrags: 

Hallo,

gerade habe ich in Andorra 2D die Möglichkeit zum laden von 3D-Modellen eingebaut. Wie alles andere auch, findet das Laden in modularer Weise statt. So können Loader für die verschiedenen Modelformate einfach durch hinzufügen zur Uses-Klausel eingebunden werden (so mache ich das ja auch schon bei den Bildformaten.)

Momentan arbeite ich an einem Loader für 3DS (Danke hierbei an Noeska, dessen Bibliothek ich hierbei teilweise als Referenz für das 3DS Dateiformat missbrauche). Die entsprechende Unit gibt es hier zum Anschauen: http://andorra.cvs.sourceforge.net/view ... iew=markup

Aktuell lade ich weder Texturkoordinaten noch Materialien aus der 3DS-Datei, doch das kommt in den nächsten Tagen noch.

Weitere Formate, die ich unterstützen möchte sind .X und .OBJ

Außerdem habe ich einen "Maskottchen Wettbewerb" gestartet, bei dem ich ein 3D-Maskottchen für die Verwendung in den 3D-Demos von Andorra 2D suche.
Siehe: http://www.delphipraxis.net/topic151171 ... tchen.html

Kommentare sind wie immer erwünscht, ;-)
Andreas

Autor:  igel457 [ So Aug 09, 2009 15:00 ]
Betreff des Beitrags: 

Hallo,

nachdem ich längere Zeit lang keine Zeit gefunden habe um großartige Verbesserungen in das Projekt einzubauen, habe ich nun einen Loader für das Restless Dateiformat geschrieben.

Momentan kann ich nur statische Modelle laden, ich werde euch aber auf dem Laufenden halten.

Andreas

Dateianhänge:
restless1.png [44.71 KiB]
18-mal heruntergeladen

Autor:  igel457 [ Mo Aug 10, 2009 18:39 ]
Betreff des Beitrags: 

So, mal ein kleiner Status-Update:

Ich bin jetzt in der Lage die Animationen und Bones aus Restless zu Laden und so weit, das Mesh mit den Bones in seine definierte Ausgangsposition zu bringen.

Methoden zum Interpolieren der Keyframes habe ich auch schon implementiert. Jetzt muss ich die Animationsdaten nur noch auf das Skelett übertragen und anwenden. Dazu muss ich meine Modellklasse allerdings noch ein bisschen überarbeiten.

Außerdem habe ich vor, die Berechnung der Vertexpositionen in einen eigenen Thread auszulagern (so wie ich das schon mit meinem Partikelsystem gemacht hatte). Das hat den Vorteil, dass die eigentliche Darstellung (bei Multiprozessorsystemen) kaum ausgebremst wird.

Achso, vielleicht fragt sich noch jemand, weshalb ich in eine 2D-Engine das Laden von 3D-Modellen einbaue: Die Antwort ist ganz einfach. Leider ist das Zeichenen von Figuren/Objekten aus mehreren Perpektiven/Richtungen oftmals aufwendiger als ein 3D-Modell zu bauen. Außerdem lassen sich die 3D-Modelle bei der Animation zur Laufzeit mit beliebig vielen Zwischenstufen in jede beliebige Stellung bringen, was bei 2D-Grafiken nur beschränkt möglich ist.

Dateianhänge:
Dateikommentar: Ein Screenshots der Andorra Simple 3D Demo mit einem aus Blender exportierten Modell
restless2.png
restless2.png [ 73.7 KiB | 20318-mal betrachtet ]

Autor:  igel457 [ Mo Sep 14, 2009 21:55 ]
Betreff des Beitrags: 

Hallo,

mit dem Restless-Loader habe ich leider noch nicht weiter gemacht, das kommt aber sicher noch ;-)

Heute und gestern habe ich ein kurzes (~12 Min) Video erstellt, das ein neues Feature der kommenden Andorra 2D-Version ("It comes when it's done") demonstriert: Das neue "Registrations Server"-Pluginsystem, welches nicht nur mit Andorra 2D verwendet werden kann, sondern sich auch prima für andere Anwendungen eignet.

Das Video kann hier angeschaut werden:
http://www.vimeo.com/6577988

Für alle mit relativ schneller Internetverbindung (sprich DSL) empfehle ich die "HD"-Variante, aber auch in der "SD"-Version lassen sich alle Quelltexte problemlos lesen.

Viel Spaß mit dem Video,
ich bin auf euer Feedback gespannt,
Andreas

Autor:  igel457 [ Mi Sep 16, 2009 15:56 ]
Betreff des Beitrags: 

Eine aktuelle Testversion des im letzten Post besprochenen Pluginsystems habe ich hier hochgeladen:
http://andorra.sf.net/tutots/common.zip

Die entsprechenden Units sind (die Namen der Units bleiben vermutlich nicht so, oder ich Teile die Klassen nochmal anders auf):
AcPersistent, AcRegUtils und AcDLLExplorer

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/