Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Easy3DGL - Eine Bibliothek für OpenGL (https://www.delphipraxis.net/160483-easy3dgl-eine-bibliothek-fuer-opengl.html)

Edlmann 21. Feb 2012 10:55

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Zitat:

Zitat von Coffeecoder (Beitrag 1149799)
Zitat:

Zitat von EWeiss (Beitrag 1149730)
Zitat:

Zitat von Coffeecoder (Beitrag 1149726)
Gibt es eine Möglichkeit um die Farbtiefe eines Bildes zu ermitteln?

Mit Photoshop und diversen anderen Paint Programmen.
PS:
Oder Eigenschaft vom Bild (TAB Details)

gruss

Danke, ich überprüfe dies und poste heute abend. (Bild nicht dabei ;) )

[Add]: Die Bittiefe des Bilder vom Jupiter ist 24bit sowie wie die anderen Planetenbilder auch. Die anderen werden dennoch dargestellt. Folgender Test habe ich auch gemacht: jupiter.jpg > jupiter.bmp mit 24bit > wird angezeigt. Hat jemand eine Erklärung dafür?

Wie gesagt, das wird an dem Loader liegen den ich benutze...wenn du willst kann ich die glBMP gegen die glBitMap austauschen, die deutlich mehr Features besitzt und Fehlerfreier ist.

SimplySimon 19. Mär 2012 15:25

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Kann man auch eine bereits erstellte Form (z.B. Quader) während der Laufzeit löschen?
Erzeugt habe ich eine Bühne im FormCreate mit:

Delphi-Quellcode:
Bühne[1] := GLQuader.Create(-X/2 - 0.25, 4, 0, 0.1, 6, Y-7, 'textures/bg.bmp');


Löschen möchte ich diesen Quader durch einen Button während der Laufzeit:

Delphi-Quellcode:
Bühne[1].Free;


Das funktioniert aber leider nicht...
Kann jemand helfen, oder weiß jemand eine Lösung? :)

Vielen Dank im Voraus!

Jens01 19. Mär 2012 17:09

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
probier doch mal
Code:
Bühne[1].Free;
Bühne.Delete(1);

SimplySimon 19. Mär 2012 19:02

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
E2018 Record, Objekt oder Klassentyp erforderlich...
Hab's dann mal probiert mit

Delphi-Quellcode:
Bühne[1].Delete(1);


aber das geht leider nicht... (E2003 Undeklarierter Bezeichner: 'Delete') :(

Ich suche mal weiter nach Lösungen :D
Notlösung wäre alles neu zu zeichnen aber wenn viele Objekte gezeichnet werden, kann das ja auch gerne mal länger dauern...

Jens01 19. Mär 2012 19:47

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Guck Dir noch mal meinen Code genau an und vergleich mal Zeichen für Zeichen!
Du mußt das Ding auch vor dem Delete befreien mit Free, da sonst ein Speicherleck bleibt.

SimplySimon 19. Mär 2012 20:10

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Leider stürzt das Programm bei Bühne[1].Free ab.
Heißt: Systemfehler Code 8.
Und mit Bühne.Delete(1) lässt sich das Projekt nicht kompilieren...

SimplySimon 19. Mär 2012 21:16

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Lösung gefunden:

Hinzufügen:
Delphi-Quellcode:
begin
  Bühne[1] := GLQuader.Create(-X/2 - 0.25, 4, 0, 0.1, 6, Y-7, 'textures/bg.bmp');
  AddSolid(Bühne[1]);
end;
Löschen:
Delphi-Quellcode:
var CItem: GLObject;
begin
  CItem := SolidList[0];
  FreeAndNil(CItem);
  SolidList.Delete(0);
end;

Edlmann 20. Mär 2012 20:33

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Da anscheinend noch Interesse an dieser Unit besteht, setze ich mich mal hin und schreibe sie soweit um, dass sie wirklich sauber zu benutzen ist.

Diese Unit ist ursprünglich in Java geschrieben worden, und zwar zusammen mit meinem Informatik-Lehrer, und als ich sie nach Delphi übersetzt hatte war ich noch ziemlicher
OpenGL Neuling. Ich werd jetzt mal einiges an Techniken einbauen, die ich seitdem gelernt habe (Mutlisampling, Blinn-Phong-Lighting, etc.) und das Object-Handling verbessern.
Vielleicht füge ich auch meine (sehr simple) Partikelengine ein.
Desweiteren werde ich die glBMP durch die glBitMap ersetzen, sodass auch .tga und .png-Files unterstüzt werden, und außerdem weniger Fehler beim Laden von Texturen entstehen.

Also warte am besten 2-3 Tage, dann dürfte die Unit in einem Zustand sein dass sie Fehlerfreier arbeitet.

SimplySimon 20. Mär 2012 21:54

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Wow das ist klasse :)
Genial wären auch noch andere Formen, aber ich möchte hier nicht zu viel verlangen.
Vielleicht kann ich ja (darf ich ja) auch noch eigene Formen in diese Unit einbinden. :-D

Edlmann 20. Mär 2012 22:08

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Zitat:

Zitat von SimplySimon (Beitrag 1157614)
Wow das ist klasse :)
Genial wären auch noch andere Formen, aber ich möchte hier nicht zu viel verlangen.
Vielleicht kann ich ja (darf ich ja) auch noch eigene Formen in diese Unit einbinden. :-D

Klar, die Struktur der Formen dürfte ja realtiv ersichtlich werden aus der Klasse ;) was ich da benutze sind einfach standardformen.
Mit ein wenig Arbeit könnte man auch die gl3ds einbauen, eine Unitsammlung zum Laden von 3ds/x/obj Files...mal schauen, mal schauen ^^
Ich freue mich über Verbesserungen der Unit, sie ist sowieso eher als simple Inspiration gedacht, als als irgendwas auch nur annähernd ausgewachsenes ^^

SimplySimon 20. Mär 2012 23:57

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Ich habe vorher nie mit OpenGL gearbeitet und habe durch diese Unit einfach Lust bekommen mich Schritt für Schritt einzuarbeiten.
Diesen ersten Schritt konnte ich aber nur durch Easy3DGL machen und wagen, anders wäre ich gar nicht in Versuchung geraten.

Jetzt bahnen sich völlig neue Möglichkeiten für mich an ;)

Ich bin halt gerade dabei das alles zu verstehen was da abläuft und dann fange ich an selbst mal dadran rumzuschrauben, denn wenn etwas bei mir laufen soll, dann sollte es zu 100% perfekt laufen.

Edlmann 21. Mär 2012 11:40

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Zitat:

Zitat von SimplySimon (Beitrag 1157627)
Ich habe vorher nie mit OpenGL gearbeitet und habe durch diese Unit einfach Lust bekommen mich Schritt für Schritt einzuarbeiten.
Diesen ersten Schritt konnte ich aber nur durch Easy3DGL machen und wagen, anders wäre ich gar nicht in Versuchung geraten.

Jetzt bahnen sich völlig neue Möglichkeiten für mich an ;)

Ich bin halt gerade dabei das alles zu verstehen was da abläuft und dann fange ich an selbst mal dadran rumzuschrauben, denn wenn etwas bei mir laufen soll, dann sollte es zu 100% perfekt laufen.

Zum Einstieg sehr zu empfehlen: http://wiki.delphigl.com/index.php/Tutorial

Hab gerade eine Version hochgeladen, wo die Objekte eine 'Active'-Eigenschaft haben, die bestimmt, ob Objekte gerendert werden oder nicht.
Außerdem ist Multisampling nun aktiviert (kann bei der Init-Methode abgeschaltet werden), und ich hab ein bisschen im Quelltext aufgeräumt.

SimplySimon 21. Mär 2012 21:37

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Der Einstieg ist ja mal genial! :thumb:
Um die Unit muss ich mich morgen kümmern aber das hört sich doch sehr vielversprechend an :)

Edlmann 22. Mär 2012 13:07

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Jo, auf der Seite gibts alles Richtung OpenGL, und 95% davon sind Delphi ;) Das Forum davon ist auch sehr gut was Fragen Richtung OpenGL angeht, hier in der DP ist das immer Glückssache ob grad jemand on ist der sich da auskennt, da drüben gibts genügend OGL pros :D

SimplySimon 22. Mär 2012 14:47

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Erstmal ein dickes Lob! Da ist wirklich einiges besser geworden! :)
Aber: Die neue Prozedur
Delphi-Quellcode:
FreeGL(Handle: HWND)
gibt bei mir beim Beenden immer eine Ungültige Zeigeroperation zurück...
Das könnte zusätzlich auch noch hierdran liegen:
Delphi-Quellcode:
finalization

if AppHandle > 0 then
  FreeGL(AppHandle);

end.

Edlmann 22. Mär 2012 15:00

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Zitat:

Zitat von SimplySimon (Beitrag 1157977)
Erstmal ein dickes Lob! Da ist wirklich einiges besser geworden! :)
Aber: Die neue Prozedur
Delphi-Quellcode:
FreeGL(Handle: HWND)
gibt bei mir beim Beenden immer eine Ungültige Zeigeroperation zurück...
Das könnte zusätzlich auch noch hierdran liegen:
Delphi-Quellcode:
finalization

if AppHandle > 0 then
  FreeGL(AppHandle);

end.

Die Prozedur FreeGL musst du nicht mehr selber aufrufen, das übernimmt die Unit jetzt.

SimplySimon 22. Mär 2012 16:19

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Ach das war damit gemeint ;)
Danke! :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:56 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz