Animation erstellen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Das bedeutet dann wohl eine neue Installation ?

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo "Warf",
bevor Du Dir noch mehr Mühe mit meinem Problem machst: Es läuft jetzt Dein Beispiel!
Ich habe den Rat vom Mathias befolgt und die 32-bit-Version von Lazarus installiert. Das hat einige Probleme verschwinden lassen.
Vielleicht finde ich morgen Zeit mich mich mit "Andorra" zu beschäftigen. Eine fiese Erkältung hat allerdings etwas dagegen.

Ein großes Dankeschön an die geduldigen Helfer !

Hannes

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo Forum,

dank Eurer Hilfe ist es mir nun gelungen mich mit "Andorra2d" etwas zu befassen. Es erscheint mir gut geeignet um mein Vorhaben umzusetzen. Einiges habe ich schon fertig.
Weil ja die Eingaben der relavanten Daten unabhängig von einer Maßeinheit erfolgen sollen (es gibt ja Modellbauer die mit "inch" arbeiten) ist es notwendig eine Skalierung zu machen.
Das klappt ganz gut. Den Nullpunkt von oben links nach unten links zu verschieben ist ja auch kein Problem. Was mich jetzt noch stört ist die Tatsache, dass "Y+" nach unten zeigt.
Man könnte natürlich alle Positionen anpassen aber da ich zum Vergleichen ein CAD-System benutze und auch alle anderen, mir bekannten, Quellen anders orientieren ist das eine ständige Fehlerquelle.
Gibt es eine, für mich nachvollziehbare, Möglichkeit diesen Umstand zu ändern?
Ich zeichne im Canvas von Andorra direkt auf meinem Form.

Mit freundlichen Grüßen

Hannes

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo Forum,

jetzt habe ich schon einige Zeit fleissig an meiner Animation gebastelt. Es bewegt sich schon Einiges.
Da mir keine Lösung zu meiner letzten Frage eingefallen ist wurden die einzelnen Positionsangaben halt angepasst.
Was mir gut gefällt ist die flüssige Wiedergabe.
Was mir allerdings gar nicht gefällt sind die ausgefransten Kanten. Gerade bei kleinen Kreisen, und davon brauche ich einige, sieht das grausam aus.
Nach langem Suchen in alten Tutorials bin ich dann auf den Hinweis gestoßen, dass der alte OGL-Header ein Antialiasing nicht unterstützt.
Jetzt habe ich wieder ein großes Problem. DirectX könnte ich wohl auch nutzen nur bekomme ich "Andorra" mit DirectX auf meinem Rechner
nicht zum Laufen. Die verfügbaren DLL`s sind ja auch schon recht alt. Außerdem gefällt mir diese Lösung nicht sehr.
Viele Suchen nach Informationen zu "Andorra" endeten in verwaisten Links.
Wenn ich keine Lösung für die unschönen Kanten der Grafiken finde so habe wohl, mal wieder, viel Zeit und Nerven in die falsche Richtung investiert.
Es ist schon erstaunlich: Anleitungen zum Erstellen von Spielen mit den tollsten Effekten finde ich mehr als ausreichend aber wie man einen "runden"
Kreis auf den Bildschirm bekommt ist, scheinbar, zu trivial.
Über irgendwelche Ratschläge würde ich mich wirklich sehr freuen!
Im dümmsten Fall müsste ich mich nach Alternativen umsehen. Auch dazu sind Tipp`s willkommen.

freundliche Grüße

Hannes

Warf
Beiträge: 2150
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Animation erstellen

Beitrag von Warf »

So wie ich das gelesen habe unterstützt Andorra kein Antialising für OpenGL, ich habe dir mal die DirectX Bibliothek kompiliert, keine Ahnung ob es Funktioniert, habe die dpr->lpr funktion von Lazarus verwendet, und nur ein wenig angepasst:
Dateianhänge
AndorraDX93D.zip
(204.06 KiB) 104-mal heruntergeladen

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Ich danke Dir!
Deine DLL funktioniert. Es ist nur ärgerlich für mich warum ich das selbst nicht zum Laufen bringe.
Ich kann doch nicht immerzu Fragen stellen.

Mein Projekt habe ich jetzt mal versucht umzustellen. Eine Veränderung / Verbesserung konnte ich allerdings noch nicht feststellen.

Hoffentlich mache ich das mit dem Einschalten der Option "Antialiasing" auch richtig: "AdDraw.Properties.SetProp('antialias', true);" (im FormCreate) ?

Mit freundlichen Grüßen

Hannes

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo Forum,

nach einigen Tagen ist nun meine Entscheidung gefallen. Ich werde Andorra nicht verwenden.
Warum?
Die Ergebnisse sehen bescheiden aus. Einfache geograpfische Element (Kreise usw.) zu zeichnen ist zwar einfach, das Ergebnis aber unbefriedigend.
Mag sein, dass es an meinem Unvermögen liegt aber ich will nicht noch mehr Zeit darin investieren.
Momentan baue ich meine kleine Animation schlicht in einer Painbox auf. Es sieht, ohne Anialiasing (geht ja scheinbar bei GDI nicht), besser aus als meine Versuche mit Andorra und schafft mir auch, bisher, keine großen Probleme. Wenn man einige Dinge beachtet läuft das sogar recht flüssig.

Ist eigentlich GDI+ mit Lazarus möglich? Mir fehlt jetzt einfach das Antialiasing.

Für Eure Unterstützung möchte ich mich bedanken.

Mit freundlichen Grüßen

Hannes

Mathias
Beiträge: 6970
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Animation erstellen

Beitrag von Mathias »

Wie sieht es mit OpenGL aus, zu kompliziert ?
Damit kann man auch 2D-Sachen machen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo Christian,

ich habe Deinen Beitrag
Eventuell wird 3D aber das einfachste.
In GLScene kannst du die deine Maschiene quasi mit Komponenten zusammenbauen.
Es gibt da auch 2 Physikengines mit denen du das ganze sogar Physikalisch realistisch darstellen könntest.
nicht ignoriert und mir einige Tutorials dazu angesehen. Für mich, bin froh halbwegs mit Lazarus zurecht zu kommen, scheint das aber sehr aufwändig zu sein.
Ich befürchte, dass eine Einarbeitung in OpenGL weitaus mehr Zeit in Anspruch nehmen würde als mein eigentliches Projekt.
Ich würde viel Unterstüzung brauchen, möchte aber nicht ewig Fragen dazu stellen und nach Beispielcodes fragen müssen.

Reizvoll wäre es natürlich schon ...

Hannes

SoE
Beiträge: 84
Registriert: Mo 31. Aug 2015, 01:51

Re: Animation erstellen

Beitrag von SoE »

Es gibt so viel Zeug um so etwas zu erledigen:

https://github.com/MarcoCestari/Asphyre oder Version 3.0.4 (FreePascal)
http://sourceforge.net/projects/asphyre/
http://sourceforge.net/projects/lazpaint/files/src/ (BGRABitmap)
http://graphics32.org/wiki/
http://imaginglib.sourceforge.net/
http://www.zengl.org/
https://wiki.delphigl.com/index.php/dglOpenGL.pas/en (OpenGL Header)
http://www.clootie.ru/fpc/index.html (DirectX Header, nicht ganz aktuell)

Irgendetwas wird wohl auch für dich dabei sein... das hier kann man in wenigen Minuten finden...
Viel Spass beim Testen ... ;-)

by the way: Man kann auch mit CANVAS.LineTo statt einer Linie oder Linien einfach Pixel malen. Dann kann man mit 'ner einfachen Doppel-For-Schleife in einem Rutsch Linien und Rahmen malen die einen Schatten haben und AA.
Ich hab' mir im Detail aber nicht angesehen was du genau machen willst... ist nur 'ne Option...

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo SoE,

Danke für die Liste.
Es ist richtig: Man kann das in einigen Minuten finden. Meine Frage war aber welchen Weg für mein Vorhaben zu empfehlen ist.
Was ich beabsichtige habe ich, hoffentlich verständlich, in meinem ersten Post versucht zu erklären.
Einige Dinge, OpenGl, DirectX u. Andorra, habe ich versucht und meine Erfahrungen damit beschrieben.
Als Anfänger braucht es viel Zeit um eine andere Variante zu testen. Das mag an der Unerfahrenheit liegen.
Deshalb habe ich hier um Hilfestellung gebeten.

Hannes

SoE
Beiträge: 84
Registriert: Mo 31. Aug 2015, 01:51

Re: Animation erstellen

Beitrag von SoE »

@Johannes:
Also ich würde sagen wenn man mit Lazarus Bordmitteln nicht glücklich ist, dann ist es am besten folgende Reihenfolge einzuhalten:

(1) für das Malen von semitransparenten Pixeln und AA Linien usw. nimmt man am besten Graphics32 oder VamypreImaging LIB oder BGRABitmap. Das ist sehr viel einfacher zu benutzen als GDI+ und ganz sicher nicht langsamer. Graphics32 zum Beispiel kommt mit TBitmap32 und TImage32 daher und die kennt man ja schon bestens. Dazu braucht man sich gar nicht weiter auf etwas umzustellen. Was die Geschwindigkeit angeht bei dem Vorhaben, kann ich mir nicht vorstellen, dass die Unterstützung einer GPU notwendig ist. Oftmals ist sie sogar nervig, wenn dadurch die Lüftersteuerung anspringt und eine einfache Optik plötzlich 'ne Menge "Krach" macht...

(2) Ist man mit dem Ergebnis nicht zufrieden, dann geht man weiter zu einem Framework wie z.B. Asphyre oder Asphyre Sphinx oder ZenGL oder oder... (schon fertige Bausteine eben). Das hat den großen Vorteil, dass man DirectX oder OpenGL einfach nutzen kann ohne alles von Grund auf per Header selber zu machen und man nutzt so vorgefertigte Routinen.

(3) Header für OpenGL oder DirectX sind der letzte Schritt den ich gehen würde und auch nur wenn ich in Zukunft unbedingt mehr in dieser Richtung brauche. Das fühlt sich in diesem Beispiel an wie mit Kanonen auf Spatzen zu schießen. OpenGL ist mächtig, aber eine schnelle Einarbeitung ist wohl eher ein Witz.

EDIT: bei OpenGL und DirectX kann man auch keine Komponenten benutzen bzw. ein MIX funktioniert nicht. Also dort wo man per OpenGL hinzeichnet...

Natürlich kann ich nicht sagen was für dich leicht ist und was nicht, deswegen muß letztlich jeder selber testen und schauen was so alles da "draußen" herumliegt und was man davon benutzen möchte...
Es macht dich auf jeden Fall reich an Erfahrungen... grins...
Nicht aufgeben, da wartet sicher 'ne einfache Möglichkeit die du nur noch nicht gefunden hast...
Zuletzt geändert von SoE am Mo 8. Feb 2016, 23:23, insgesamt 1-mal geändert.

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Hallo ZoE

vielen Dank. Das hilft mir schon mal. Für meine kleine Animation braucht`s wirklich keine Kanonen. :)
Hab gerade versucht das BGRA-Package zu installieren aber, wen wunderts, das will erstmal nicht. Das Package läßt sich zwar installieren und die IDE wird auch neu kompiliert aber gegistriert sind die Komponenten scheinbar nicht.
Muss mal schauen was da wieder schief läuft.

Hannes
P.S. Es läuft nun, war mein Fehler!

SoE
Beiträge: 84
Registriert: Mo 31. Aug 2015, 01:51

Re: Animation erstellen

Beitrag von SoE »

Ich hab' BGRABitmap und BGRAControls bisher nur einmal benutzt und zwar nur Runtime, hab' einfach alles direkt ins Hauptverzeichnis geworfen und go...
Ich hatte es etwas eilig...
DesignTime hab' ich noch nicht probiert...

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: Animation erstellen

Beitrag von Johannes »

Muss mir das erstmal genauer anschauen. Der erste Eindruck ist gut.
Einige Dinge (Hilfslinien-dash-dot, Bemassungspfeile, Kreisbögen-Arc usw.) werde ich wohl "zu Fuß" basteln müssen.
Eine komplette Doku wäre hilfreich. Mal sehen ob ich da was auftreibe.

Danke

Hannes

Antworten