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

Aktuelle Zeit: Mo Jul 13, 2020 15:24

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: So Nov 25, 2007 18:12 
Offline
DGL Member

Registriert: So Nov 25, 2007 17:53
Beiträge: 6
Hallo Zusammen


Ich habe eine Frage für glReadPixels() und glDrawPixels().
Ich möchte ein Bild einlesen und dann gedreht auf
das Bild zeichnen. Ich habe schon viel versucht.
Kann es sein, dass das drehen der Matrix mit
glRotate*() nicht funktioniert, weil es sich um Pixels handelt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 25, 2007 18:43 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Hallo uns willkommen im Forum. Ich habe das mal von andern Thema getrennt, da es eigentlich eine neue Frage ist. ;)

Das was du möchtest ist klassisches RenderToTexture. Denn glReadPixels und glDrawPixels arbeiten direkt auf dem FrameBuffer. Also das worin gezeichnet wird. Und wenn du es drehen möchtest dann bleibt nur die Möglichkeit das Bild als Textur zu benutzen und diese dann zu drehen.

Aber zu RenderToTexture solltest du mal auf der Seite von Sascha schauen. Dort findest du ganz unten ein Beispiel zu RenderToTexture.

Wenn du etwas erfahrener bist dann kannst du dir auch mal das Framebuffer Object Tutorial anschauen. Allerdings ist das ein großerer Programieraufwand und nicht so leicht zu verstehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 25, 2007 20:32 
Offline
DGL Member

Registriert: So Nov 25, 2007 17:53
Beiträge: 6
Vielen Dank für die schnelle Antwort. :D
Ich werde mir das ganze mit der Textur ansehen und sicher einige Zeit dafür brauchen, also bis dann,

freundliche Grüsse

agumon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 07, 2007 08:00 
Offline
DGL Member

Registriert: So Nov 25, 2007 17:53
Beiträge: 6
Ich krieg's einfach nicht hin. (Seufz)

Fast letzter Hoffnungsschimmer:
Kann ich das Bild nicht mit glReadPixels einlesen, und dann
die Matrix als Textur festlegen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Dez 07, 2007 09:16 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also nur um das mal klar zu sagen. Das was du machen möchtest ist eine allgegenwärtige Aufgabe in OpenGL. Also ganz und gar nichts ungewöhnliches. Falls du also Fragen zum Verständnis oder sonst irgendwas hast, dann tu dir keinen Zwang an. Dafür sind wir ja schließlich da. :)

Ja du kannst es auch so lösen, dass du den Inhalt mittels glReadPixels ausliest und diesen dann mittel glTexImage2D oder glTexSubImage2D an eine Textur übergibst. ABER. Davon kann ich nur abraten. Denn glReadPixels ist viel zu langsam dafür. Besser wäre es, wenn du glCopyTexImage2D dafür verwendest. Das ist vom Prinzip her genau das Gleiche nur in einem einzigen Schritt. Damit kann die Grafikkarte das wesentlich besser optimieren bzw der Speicher muss die Grafikkarte auch nicht verlassen was einen enormen Geschwindigkeitsvorteil bringt.

Zur Benutzung. Ich weiß jetzt nicht genau wie viel du schon weißt. Falls Lücken sind. Siehe erstes Kapitel. ;) Um es benutzen zu können benötigst du eine vollständig initialisierte und erstellte Textur. Der Speicher für die Textur muss auch schon alloziiert sein. (glTexImage mit nil als DatenPointer) und glCopyTexImage kopiert anschließend den Framebuffer (das worin du zeichnest) in die gerade gebundene Textur. Bitte beachte, dass die Größe der Textur in den meisten Fällen eine Potenz von 2 haben sollte. Für den Anfang solltest du aber grundsätzlich immer mit einer Potenz von 2 arbeiten.

Falls du nicht genau weißt wann und wie du da was machen sollst hilft es uns, wenn du ein mal etwas Code von dir postest. Dann können wir dir auch sagen wie und wo das was gemacht werden sollte.

PS: Eine Matrix ist in OpenGL typischerweise etwas ganz anderes. Technisch gesehen stimmt es zwar irgendwo. Aber du solltest dir nicht angewöhnen zu den Texturdaten Matrix zu sagen. Das mag später den ein oder anderen ziemich verwirren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Danke
BeitragVerfasst: Mo Dez 10, 2007 22:06 
Offline
DGL Member

Registriert: So Nov 25, 2007 17:53
Beiträge: 6
Vielen vielen Dank

Es hat endlich geklappt. :D

Im DGL Wiki steht eben nichts darüber, dass man
(für solche Zwecke) für glTexImage2D() als letzten
Parameter 'nil' (bzw. 'NULL' für C) einsetzen kann.

Auch ist im Tutorial für Texturen die Reihenfolge meiner
Meinung nach nicht ganz klar definiert.
Dafür sind "Tapeten" aber schon anschaulich
und gut verständlich. :D

Also nochmals vielen Dank

Freundliche Grüsse

agumon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Dez 11, 2007 16:59 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7760
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ein entsprechender Hinweis wurde im Artikel glTexImage hinterlegt.

Hier findet man den Hinweis: http://wiki.delphigl.com/index.php/glTexImage#Verwendungsm.C3.B6glichkeit

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Dez 26, 2007 00:30 
Offline
DGL Member

Registriert: So Nov 25, 2007 17:53
Beiträge: 6
O.K. sehr gut.

Also dann wäre mein Problem gelöst.

Vielen Dank an alle!


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


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.064s | 16 Queries | GZIP : On ]