Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 21, 2025 18:58

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 36 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Do Dez 20, 2012 20:38 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
Wow :)
Super! Ich komme auch mit keiner VCL-Anwendung zurecht ;-)

Schonmal vielen Dank


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Fr Dez 21, 2012 21:31 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Hi,
ich melde mich mal wieder. Ich habe das Demo-Programm schon angefangen, aber ich bin noch nicht fertig. Einfach weil heute genau der Tag ist, wo ich fürs Wochenende und auch für Weihnachten die Einkäufe machen musste; kam dann nach Hause und in meiner Küche schaut's immer aus, als ob kurz vorher der Blitz eingeschlagen hätte. Kochen war natürlich auch angesagt.

Also habe ich erst ziemlich spät begonnen.

Und nachdem ich angefangen hatte, fand ich das wäre eine tolle Gelegenheit, endlich einmal ein wasserdichtes Demo-Programm zu basteln - so etwas habe ich nämlich noch nicht -, inklusive Logging. Also, nicht einfach nur ein schnell hingeschludertes Demo, sondern etwas Seriöseres.

Da ich relativ kurz davor stehe, nach OpenGL3 zu wechseln, besteht dann die Möglichkeit, der Lazarus-Community ein Linux-OpenGL3-Tool in die Hand zu geben.

Macht mir gerade einen Riesenspaß. Hab noch ein wenig Geduld mit mir. Du bist die erste Priorität. :wink:

Viele Grüße,
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Fr Dez 21, 2012 22:21 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
OK, kein Problem :)
Vielen Dank schonmal voher :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Mi Dez 26, 2012 17:10 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Ich bin jetzt mit dem Demo fertig; war doch viel mehr Arbeit, als ich gedacht habe. Mein eigener Benefit ist, dass ich jetzt ein kleines (naja) Basis-Demoprogamm mit Logging habe; so etwas wollte ich schon immer, aber ich war zu faul, mir eins zu schreiben; ich habe für mich selber auch gleich eine Linux-Version davon gemacht.

Speziell für Dich habe ich es mit der Fixed Funktion Pipeline ausgestattet, weil das in Deinem ursprünglichen Programm auch so war.

Der Code folgt - soweit es möglich war - dem Beispiel dieser Website: http://fabiensanglard.net/shadowmapping/index.php; ich habe zwar relativ viele Kommentare dazu geschrieben, aber dort gibt es auch ein paar weiterführende Erklärungen dazu.

Es ist ein Windows Programm für 32 Bit (nur eine einzige Datei) und braucht nur die dglOpenGL.pas. Es sollte eigentlich in Delphi laufen, aber sicher kann man sich nie sein, wenn man's nicht ausprobiert hat. Sicherheitshalber ist es reiner SourceCode, kompilieren musst Du es Dir also selber.

Ganz oben in der Kopfzeile steht noch, was man machen muss, damit es sich ordnungsgemäß beendet.

Viele Grüße,
Traude


Dateianhänge:
ShadowMapDemoRevised.zip [5.87 KiB]
491-mal heruntergeladen


Zuletzt geändert von Traude am Sa Dez 29, 2012 20:49, insgesamt 1-mal geändert.
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Do Dez 27, 2012 10:47 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
Hi Traude :)
Danke für deine Mühe. Ich kann die Anwendung trotzdem leider nicht starten :/

Fehler:
[DCC Fehler] ShadowMapDemo_Win32.dpr(79): E2007 Konstante oder Typenbezeichner erwartet -> Da mache ich Rect zu TRect
[DCC Fehler] ShadowMapDemo_Win32.dpr(153): E2003 Undeklarierter Bezeichner: 'FillByte' -> ??? Da fehlt wohl irgendeine Unit
[DCC Fehler] ShadowMapDemo_Win32.dpr(532): E2026 Konstantenausdruck erwartet -> Da schreibe ich das Ergebnis von Wurzel 0.5 rein
[DCC Fehler] ShadowMapDemo_Win32.dpr(651): E2195 Lokale Variablen können nicht initialisiert werden -> Da schreibe ich einen Init-Teil in der Prozedure
[DCC Fehler] ShadowMapDemo_Win32.dpr(652): E2195 Lokale Variablen können nicht initialisiert werden ->Siehe oben
[DCC Fehler] ShadowMapDemo_Win32.dpr(691): E2010 Inkompatible Typen: 'PGLdouble' und 'TMatrix16d'
[DCC Fehler] ShadowMapDemo_Win32.dpr(692): E2010 Inkompatible Typen: 'PGLdouble' und 'TMatrix16d'
[DCC Fehler] ShadowMapDemo_Win32.dpr(693): E2010 Inkompatible Typen: 'PGLdouble' und 'TMatrix16d'
[DCC Fehler] ShadowMapDemo_Win32.dpr(760): E2003 Undeklarierter Bezeichner: 'FillByte' -> Siehe Fehler 2


Ich benutzte Delphi 2009 Professional :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Do Dez 27, 2012 11:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
FillByte muss FillChar sein, für den E2010 muss man ein @ vor die Matrixvariable packen (am besten in Form von @MyMatrix[0,0]).

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Do Dez 27, 2012 12:03 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Zitat:
[DCC Fehler] ShadowMapDemo_Win32.dpr(79): E2007 Konstante oder Typenbezeichner
erwartet -> Da mache ich Rect zu TRect
Höchstwahrscheinlich.


Zitat:
[DCC Fehler] ShadowMapDemo_Win32.dpr(153): E2003 Undeklarierter Bezeichner: 'FillByte' -> ??? Da fehlt wohl irgendeine Unit
Versuch's mal mit "FillChar(DemoRenderContext,SizeOf(TDemoRenderContext),#0);"


Zitat:
[DCC Fehler] ShadowMapDemo_Win32.dpr(532): E2026 Konstantenausdruck erwartet -> Da schreibe ich das Ergebnis von Wurzel 0.5 rein
Vermutlich


Zitat:
[DCC Fehler] ShadowMapDemo_Win32.dpr(651): E2195 Lokale Variablen können nicht initialisiert werden -> Da schreibe ich einen Init-Teil in der Prozedure
[DCC Fehler] ShadowMapDemo_Win32.dpr(652): E2195 Lokale Variablen können nicht initialisiert werden ->Siehe oben
Ja


Zitat:
[DCC Fehler] ShadowMapDemo_Win32.dpr(691): E2010 Inkompatible Typen: 'PGLdouble' und 'TMatrix16d'
[DCC Fehler] ShadowMapDemo_Win32.dpr(692): E2010 Inkompatible Typen: 'PGLdouble' und 'TMatrix16d'
[DCC Fehler] ShadowMapDemo_Win32.dpr(693): E2010 Inkompatible Typen: 'PGLdouble' und 'TMatrix16d'
Ist der aber pingelig!

Also:
GLDouble ist ein Double. PGLDouble ist ein Zeiger auf ein Double.
Die Matrix ist folgendermaßen definiert (ganz oben auf Zeile 17):

TMatrix16d = Array[0..15] Of Double;

Also ersetze die z.B. die Zeile

"glMultMatrixd(Bias);"

Mit "glMultMatrixd(@Bias[0]);"

Weil nämlich "Bias[0]" ein Double ist, und daher "@Bias[0]" ein Zeiger auf ein Double ist.


Zitat:
[DCC Fehler] ShadowMapDemo_Win32.dpr(760): E2003 Undeklarierter Bezeichner: 'FillByte' -> Siehe Fehler 2
Genau.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Do Dez 27, 2012 18:30 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
Ich habe diese Änderungen nur zwischen Tür und Angel ändern können, deswegen konnte ich die Zugriffsverletztung, die ich immer bekomme, nicht genau herausfiltern können :/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Do Dez 27, 2012 20:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Wenn ich keine genauen Angaben bekomme, kann ich dazu nichts sagen. Ich kriege keine Zugriffsverletzung, weder im Linux, noch im Windows7 (ich habe es in beiden Betriebssystemen getestet).

Ich habe kein auch kein Delphi mehr, dass ich es dort debuggen könnte.

Das Einzige, das mir dazu einfällt wäre, dass Du ein 64-Bit-System hast. Auf einem 64-Bit System läuft es höchstwahrscheinlich nicht (das habe ich aber dazugesagt). Ich habe kein 64-bit System.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Fr Dez 28, 2012 13:34 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
Hi,
ich habe das Programm auch auf Win32 getestet. Ohne Erfolg. Bei mir erscheint in Zeile 825 der Fehler (genauer: ,,InternErrorCode:= glGetError;" Zeile 103)

,,OpenGLError:= gsGetErrorString;"
Danach bekomme ich die Zugriffsverweigerung. Wenn ich die Zeile in Win64 auskommentiere, dann startet die Anwendung und beendet sich wieder, ohne das ein handle oder eine Fehlermeldung erscheint.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Fr Dez 28, 2012 19:04 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Im 64-Bit System ist das Programm nicht lauffähig.

"OpenGLError:= gsGetErrorString;" sollte eigentlich keine Probleme bereiten; der Fehler muss irgendwo vorher sein. Denn diese Funktion wird schon bereits in der Funktion "Load_OpenGL_Function_Pointers" aufgerufen.

Man könnte diesen Fehler aber mit "parallel Debugging" finden. Das geht so: Jeder von uns beiden geht eine Prozedur nach der anderen mit dem Debugger durch und nach jeder Prozedur vergleichen wir die Ergebnisse. Dazu müsstest Du Dir ein wenig Zeit nehmen.

Falls Du mit dem Debugger noch nicht gearbeitet hast, würde ich das an Deiner Stelle unbedingt mal ausprobieren. Es ist nicht besonders schwer, aber es bringt fürs Programmieren eine Menge.

Ob Du das per PM oder im Forum oder gar nicht machen willst, überlasse ich jetzt einfach Dir.

Viele Grüsse
Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Sa Dez 29, 2012 11:34 
Offline
Compliance Officer
Benutzeravatar

Registriert: So Aug 08, 2010 08:37
Beiträge: 460
Programmiersprache: C / C++ / Lua
Ich denke das Programm läuft unter 64 bit, du musst nur einen 32 bit- Compiler verwenden!

Empfehlung: Lazarus 32 Bit

_________________
offizieller DGL Compliance Beauftragter
Never run a changing system! (oder so)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Sa Dez 29, 2012 13:03 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
end hat geschrieben:
Empfehlung: Lazarus 32 Bit
Hehe, dem kann ich mich nur anschließen.

Aber... mir ist noch etwas anderes eingefallen: ich könnte ins Lazarus-Forum rüberschaun und jemanden, der auch Delphi 2009 hat, bitten, ob er nicht den Bug finden könnte, denn es geht ja offenbar auch im 32-bit System nicht.

Windows7 weigert sich, mein altes Delphi7 zu installieren - daher kann ich es in keiner Delphi-Version ausprobieren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Sa Dez 29, 2012 13:05 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
Ok, nur ich würde meine Anwendungen auch gerne in Delphi programmieren ^^
Und mein Delphi compiler ist ja auch 32Bit, und es läuft wie gesagt auch nicht auf einen 32Bit Vista Computer :/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schattendemo
BeitragVerfasst: Sa Dez 29, 2012 13:15 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
OK, dann mach ich das so. Geht aber erst am Abend.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 36 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 16 Queries | GZIP : On ]