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

Aktuelle Zeit: Fr Jul 18, 2025 00:37

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



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Anaglyph Player
BeitragVerfasst: Di Nov 16, 2004 16:17 
Offline
DGL Member

Registriert: Di Nov 16, 2004 15:44
Beiträge: 5
Hallo Leute!

Ich arbeite zur Zeit an meinem Maturaprojekt, bei dem ich mehr oder weniger 2 Bilder zu einem stereokopischen Bild zusammenfassen muss (OpenGL / Colormask / Anaglyph: rot-cyan bzw. rot-blau).
Bis jetzt habe ich es geschafft, die Bilder einzufügen, einzufärben und übereinanderzulegen.
Jedoch erzeugt die exe Datei eine CPU Auslastung von 100%, was ich auch nicht verstehe.

Ich habe das Projekt im Attachment hinzugefügt und dachte, ihr könnt es euch vielleicht einmal anschauen?!
Das wär wirklich nett.

Außerdem muss ich dann noch das fertig erzeugte Bild als jpeg abspeichern. Wie das geht weiß ich auch nur annähernd. Ich denke, dass das mit glReadPixels geht.. jedoch wie genau das geht weiß ich leider nicht.

Und ich wollte fragen, wie ich die BIlder immer aus einem Ordner aktualisieren kann (weil ich ja ein stereoskopisches Bild in der Sekunde erzeugen muss). d.h. alle sekunden werden 2 Bilder aus einem Ordner geholt (nummerisch durchsortiert: Bild1a, Bild1b, Bild2a...) und zu einem stereokopischen Bild gemacht und dann in einen anderen Ordner abgespeichert.
Mit welchem Programm kann man dies machen??

Vielen Dank,
Mit freundlichen Grüßen, David


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 17:12 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Hallo David,

Die CPU-Auslastung von 100% ist völlig normal. Schließlich wird ja im OnIdle-Event die Render-Prozedur immer wieder aufgerufen. Und sobald der Rechner idled wird nochmal gerendert. Daher die 100%

Zu deiner Frage bezüglich Abspeicherung... Ich hab hier kürzlich im Fourm einen Beitrag zum Video-Rendering entdeckt und das Beispielprogramm funktioniert supi.

Laden von Bildern innerhalb einer Sekunde... Klingt so, als ob das in Echtzeit gemacht werden muss. Halte ich aber für keine so gute Idee. Deine Festplatte wird sich freuen. Hängt natürlich stark von der Größe der verwendeten Bilder ab.
Aber wieso machst du das denn überhaupt mit OpenGL? Wenn du doch nur 2 Bilder auslesen musst, die Farbwerte kombinieren musst und das ganze speichern sollst, würde ich dir einfach mal Canvas oder TImage.Scanline empfehlen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 17:21 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
wenn du, wie bei 3d-anwendungen üblich, das rendern ins idle-ereignis schreibst und done:=false setzt, wird immer wenn deine app idle ist, also keine eingaben empfängt, gerendert. wenn du done:=true setzt, wird nur z.b. nach einer mausbewegung einmal gerendert, und dann bis zum nächsten ereignis gewartet.

Es gibt auch schon ein topic namens "in bitmap rendern", und wenn du kein absoluter delphi-neuling bist, weißt du, wie man das in ein jpeg bringt.

EDIT: mist, da war einer schneller. noch mal das topic: In Bitmaps rendern

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 18, 2004 19:31 
Offline
DGL Member

Registriert: Di Nov 16, 2004 15:44
Beiträge: 5
Hallo Leute!

Erstmals danke für eure Antworten!

@SpaceJunky:
Kann man gegen die 100%-ige CPU Auslastung was machen?? Geht das irgendwie dass er nur ein Frame pro Sekunde rendert?
Weil mehr brauch ich ja nicht.
Es sind 2 Bilder (500*582 Pixel - jpeg) die zu einem zusammengefügt werden, und das 1 mal / Sekunde.

Also Einlesen - Bearbeiten & Rendern - Ausgeben

Canvas is eher sowas wie Photoshop oder 3dsmax oder??
Aja, und wie finde ich den Video-Rendering-Thread? Hab leider nix gefunden!


Vielen Dank, David


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 18, 2004 23:27 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Zitat:
Kann man gegen die 100%-ige CPU Auslastung was machen?? Geht das irgendwie dass er nur ein Frame pro Sekunde rendert?

Für beide Probleme bietet der sleep Befehl die Lösung ...

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 18, 2004 23:48 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ein Timer könnte auch gehn. Friert Sleep nicht das komplette programm bei voller leistung ein? (Oder war das bei ner anderen Sprache :oops: )

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 19, 2004 06:25 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
hast recht flash, sleep friert das ganze programm ein (relikt aus alten zeiten ...)

ob nun mit timer oder mit repeat...until und zeitmessung ist vollkommen egal.

_________________
Aktuelles Projekt :
www.PicPlace.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 19, 2004 10:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
sleep friert nur den Thread ein aus dem es aufgerufen wird. Wenn dies der VCL-Hauptthread ist, wird natürlich die Anwendung eingefroren. Wenn man allerdings nen eigenen Renderthread hat, kann man diesen mittels sleep bequem timen. Allerdings haben die Vorredner recht, und für deine Belange reicht ein Timer mit einer Auflösung von 1000ms.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 22, 2004 10:08 
Offline
DGL Member

Registriert: Di Nov 16, 2004 15:44
Beiträge: 5
Hallo!

Danke für eure Antworten!

Ich hab auch gehört, dass man das Speichern 1mal / Sekunde mit dem Befehlt QueryPerformanceCounter machen kann?
Ist das dann der passende Befehl?

Ich habe auch riesen Probleme mit dem Speichern der Bilder allgemein. Ich komme nicht weiter, weil die jpeg Library von der Independent JPEG Group so kompliziert ist. Hat schon wer Erfahrungen mit dieser Bibliothek?
Welche Befehle muss ich dafür verwenden??

Vielen Dank, Mfg, David


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 22, 2004 15:41 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Da kann ich dir meinen Kompressor empfehlen. Da werden JPegs komprimiert, dekomprimiert, in Bitmaps umgewandelt, als bitmaps oder jpegs gespeichert, skaliert usw.

Ein paar Kommentare hab ich dir auch gegönnt. :twisted:

*Endlich bring ich das Teil mal an*


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 08:16 
Offline
DGL Member

Registriert: Di Nov 16, 2004 15:44
Beiträge: 5
Aso... Naja, das Programm is nicht schlecht.
Das Dumme ist, dass ich das im VS (C++) programmieren muss, und das ist delphi, oder?

Mfg, David


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 23, 2004 14:04 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
oh, sorry, dann hab ich das mit nem anderen thread verwechselt....

tut mir leid, aber unter c++ gehts sicher nicht so einfach. du solltest mal suchen, obs da irgendwo ne unit gibt, die dir die selben funktionen bietet(compress,savetofile, loadfromfile). Bin mir sicher, so etwas gibts irgendwo.

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]