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 »

Habe gerade Dein "neues Rad" getestet. Genau das wollte ich haben! Nun muss ich es nur noch verstehen.
Herzlichen Dank, morgen werde ich mir das genau ansehen.

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 »

Nun muss ich es nur noch verstehen.
So wie es aussieht, kannst du es dort in deinem Code einstellen.

Code: Alles auswählen

alpha:= alpha+0.03;
alpha:= alpha+0.01;  // langsamer 
Und den Intervall schon brav auf 20ms lassen.
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 Mathias
das hat mir jetzt keine Ruhe gelassen und ich habe es noch ausprobiert. Funktioniert gut!
Nochmals meinen Dank.
Falls es Dich interessiert schicke ich Dir gern einen Link zu meinem Machwerk. Ist aber noch lange nicht fertig.

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 »

Falls es Dich interessiert schicke ich Dir gern einen Link zu meinem Machwerk. Ist aber noch lange nicht fertig.
Das würde mich schon interressieren.
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 Mathias,
in Deinem Postfach ist ein Link.

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 »

Ich habe es mir angeguckt, dies sieht schon einiges besser aus als meine billige Animation.
So wie es aussieht, braucht die Animation recht viel Power, wen ich auf Vollbild stelle, fängt das Rad an zu stottern und wird langsamer.
Ich will dich damit nur warnen, wen noch mehr grafische Elemente kommen. Vielleicht liegt dies auch an meinem Wine.

PS:
Es liegt nicht an Wine, auf meinem Intel-Atom mit Win10-Beta, läuft die Animation im Sekunden-Takt.
Ich würde dir immer noch OpenGL in 2D empfehlen, da wird es dir auch auf eine lahmen Kiste fliessend laufen.



Wie hast du das mit den Edit-Fenster gemacht, das diese bei Eingabe gelb werden ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Horst_h
Beiträge: 74
Registriert: Mi 20. Mär 2013, 08:57

Re: Animation erstellen

Beitrag von Horst_h »

Hallo,

ich habe die Animation vom 23. Feb 2016, 21:44 etwas modifiziert, umso soweit zu beschleunigen, das sie unter wine und FullHD noch mit Timer1.interval = 14 funktioniert.
Dabei habe ich eine CPU Last von knapp über 90%.
Das wichtigste dabei sind kontante Bitmaps, wie das Rad inclusive Hintergrund zu erstellen und zu kopieren ( draw ) und darin zu zeichnen.Auch den Kolben kann man als Bitmap speichern und an die passende Stelle kopieren.VIelleicht wäre BitBlt noch schneller, habe ich aber nicht getestet.
Was scheinbar sehr viel Zeit kostet ist das zeichnen mit diesen sehr breiten Linien.
Anbei das Lazarusprojekt + - ändern den Schrittwinkel und die scrollbar1 das Timer1.interval. zwischen 1 und 100.

Gruß Horst
Dateianhänge
Rad2.zip
(3.81 KiB) 112-mal heruntergeladen

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

Re: Animation erstellen

Beitrag von Johannes »

Danke für das Feedback.
Leider bin ich ganz frisch was die Programmierung mit Pascal angeht. Mit OGl habe ich auch versucht einige Erfahrungen zu sammeln.
Hab mir diesbezüglich auch einige Demo`s angeschaut.
Andorra hatte ich auch schon mit OGl verwendet. Da war es nicht möglich per Antialiasing brauchbare Ergebnisse zu erreichen.
Mit BGRA habe ich viele fertige Routinen für das Zeichnen gefunden die ich, wenn ich das richtig verstanden habe, bei der Verwendung von OGl
nicht zur Verfügung habe. Ich habe halt große Bedenken das, ohne Hilfe, umzusetzen.
Wie bekomme ich geometrische Figuren gezeichnet? Wie wird skaliert? usw. Das sind Anfängerfragen die ich aber nicht beantworten kann.
Ständig immer nur Fragen zu stellen über die Profis nur lachen liegt mir auf die Dauer auch nicht.
Wie schon mehrfach erwähnt, würde ich zu gern in dieser Richtung etwas machen zumal meine Befürchtungen sich nach Deiner Auskunft bestätigen.

Gibt es ein gutes Tutorial zu OpenGl das ich noch nicht gefunden habe mit dem ich weiter komme?

Die gelben TEdit:

Code: Alles auswählen

procedure TSteuerung.EdAAEnter(Sender: TObject);
begin
  EdAA.color := clyellow;
end;                              
P.S. Hab Dein letztes Posting erst jetzt gesehen. Danke! Ich schau mir das an.

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 »

@Horst_h

So wie ich sehe, hast du mein Programm modifiziert. Aber mit den Bitmaps ist es bei mir um einiges schlechter geworden, es flackert.
Mein Rad läuft auch auf dem Atom mit Win10 Beta., ohne stottern und flackern, mit ca 15% CPU-Last. Die Speichen-Anzahl habe ich auf 15 erhöht.

Mein Kommentar mit dem stottern, bezieht sich auf das Rad von Johannes, welches er mir Persönlich geschickt hat.
Viel mehr hat seine Animation unterdessen (noch) nicht, was die Grafik anbelangt.
Er hat viele Edits mit Zahlen, aber die bremsen kaum, sonst würde seine Animation nicht schneller werden, wen man das Bild verkleinert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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 »

Ständig immer nur Fragen zu stellen über die Profis nur lachen liegt mir auf die Dauer auch nicht.
Jeder muss es mal lernen, ich habe auch viele Fehler gemacht, und mache immer noch welche.
Für etwas gibt es ja das Forum. :wink:
Gibt es ein gutes Tutorial zu OpenGl das ich noch nicht gefunden habe mit dem ich weiter komme?
OpenGL schreib man so. ich musste zuerst studieren, was OGI heisst.
Da gibt es schon welche, für deine Animation würde auf jeden Fall das alte OpenGL reichen, 3.3 ist dafür nicht nötig.
Ich werde morgen mal gucken ob ich etwas finde.
Wen ich Lust habe werde ich mein Rad mal auf OpenGL umschreiben, aber heute nicht mehr. :wink:
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 Mathias,
ein kleines Beispiel von Dir wäre mir ganz sicher eine sehr große Hilfe!
Ich warte gerne.

@Horst
Vielen Dank! Mir war es zuerst entgangen, dass Du geantwortest hast und dachte es wäre Mathias gewesen.

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 »

Die Datei dglOpenGL.pas wird benötigt, aber dies wurde weiter oben schon mal erwähnt.
Den OpenGLContext, LazOpenGLContext 0.0.1 braucht es auch.

Ist unter "Package/Installierte Packages einrichten..." .
Wen noch nicht installiert, ist es in der rechten Listbox vorhanden.

Ich hoffe du bringst es zum laufen.
Dateianhänge
OpenGL_Rad.zip
(125.59 KiB) 82-mal heruntergeladen
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 Mathias,

LazOpenGLContext0.0.1 und OpenGL.pas habe ich gefunden.
Jetzt kommt : "Das Projekt benötigt das Package "ogl_Package".....
Hab schon danach gesucht aber nix Vernünftiges gefunden.

Gruß und Dank

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 »

Jetzt kommt : "Das Projekt benötigt das Package "ogl_Package".....
Ups, das ist eine Package von mir, wird aber in diesem Beispiel nur für die dglOpenGL.pas gebraucht, welche ich dort drinnen verbaut habe.

Die Package kannst getrost im Projectinspector entfernen, anschliessend sollte es laufen, vorausgesetzt du hast die dglOpenGL.pas.
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 »

OK, dann komme ich aber auch nur bis:

Code: Alles auswählen

{$mode objfpc}{$H+}
{$LinkLib GL}
{$PACKRECORDS C}
 
interface
 
uses
  Classes, SysUtils, ctypes, LCLProc, LCLType, X, XUtil, XLib, gl,
  InterfaceBase,
  glx,
  WSLCLClasses,
  {$IFDEF LCLGTK2}
  LMessages, Gtk2Def, gdk2x, glib2, gdk2, gtk2, Gtk2Int,
  {$ENDIF}
  {$IFDEF LCLGTK}
  glib, gdk, gtk, GtkInt,         
"glgtkglxcontext.pas(19,48) Can`t find Unit X..."

Antworten