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

Aktuelle Zeit: Fr Jul 18, 2025 15:08

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mo Okt 05, 2009 22:14 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
Moinsen aus Hamburg :)

Ich möchte in einem kleinen Testprojekt meine Szene in eine Textur rendern, um sie nachträglich zu bearbeiten. Ich hab das "Renderpass" Tutorial benutzt, aber es funktioniert nicht :/ ich finde einfach den Fehler nicht...

Erstmal der Code:

Code:
  1. glClearColor(0.1,0.2,0.3,0.4);
  2. glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  3. GetMem(pTexData,1366*768*3);
  4. glGenTextures(1,@Screen1);
  5. glBindTexture(GL_TEXTURE_2D, Screen1);
  6. glTexImage2D(GL_TEXTURE_2D,0,3,1366,768,0,GL_RGB,GL_UNSIGNED_BYTE,pTexData);
  7. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
  8. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
  9. FreeMem(pTexData);
  10. glViewport(0,0,1366,768);
  11. RenderSzene;
  12. glBindTexture(GL_TEXTURE_2D, Screen1);
  13. glCopyTexImage2D(GL_TEXTURE_2D,0,GL_RGB,0,0,1366,768,0);
  14. //----
  15. glClearColor(0.1,0.2,0.3,0.4);
  16. glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  17. glMatrixMode(GL_MODELVIEW);
  18. glLoadIdentity;
  19. glBindTexture(GL_TEXTURE_2D,Screen1);
  20. glColor3f(1,1,1);
  21. glBegin(GL_QUADS);
  22.  glTexCoord2f(0,0); glVertex3f(0,0,0);
  23.  glTexCoord2f(1,0); glVertex3f(1366,0,0);
  24.  glTexCoord2f(1,1); glVertex3f(1366,768,0);
  25.  glTexCoord2f(0,1); glVertex3f(0,768,0);
  26. glEnd;


Der ursprüngliche Code war sehr viel länger, da ich einen Pseudo-HDR Effekt erzielen wollte und in einem durchgecoded habe (fail!). Ich habe ihn Testhalber auf diesen Code gekürzt, keine Besserung.

Rendere ich die Szene normal, läuft alles perfekt. Ich habe schon versucht die Szene auf eine 512*512 px große Textur zu rendern, keine Verbesserung. Die Szene bleibt leer. Auch an der Z-Coordinate des Screenfüllenden Quads liegt es nicht.

Es handelt sich um eine 2D Szene, liegt hier das Problem?

Hilfe![/pascal]

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 06, 2009 01:08 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Hast du mal glViewport(0,0,1366,768) mit in deine Renderprozedur genommen?
Einfach zum testen ob die Koordinaten passen.
Ansonsten bist du sicher, dass es mit der POT-Textur nicht funktioniert hat?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 06, 2009 12:39 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 15, 2009 20:48
Beiträge: 111
Wohnort: Berlin
Programmiersprache: Delphi,JS,PHP,AS3,C#
Hmm glViewport(0,0,1366,768); in jeder Render-Prozdeur der Objekte verändert nichts...

Wenn ich den Effekt an und aus schalte dann erhalten meine Quads die ich zeichne die neue Textur... die ist aber leer. Ich lade keine Textur manuel für meinen Test, sodass die zuletzt gebundenne benutzt wird. Ich bin mir sicher, dass die Textur einfach nur die ClearColor erhält, denn aus den bunten Farben, die ich den Quads zufäälig zuordne wird ein Bild mit diversen Blautönen nach dem ausschalten. Sprich: es funktioniert, aber die gerenderten Objekte erscheinen nicht... :/ Muss ich die Render-Funktionen irgendwie alternieren?

"RenderSzene;" ruft mehrmals folgendes auf:

Code:
  1. //glViewport(0,0,1366,768);
  2. glMatrixMode(GL_MODELVIEW);
  3. glLoadIdentity;
  4. glTranslatef(Position.X+Size.X/2,Position.Y+Size.Y/2,Position.Z);
  5. glRotatef(Rotation,0,0,1);
  6. TexLoader.BindTexture(Tex);
  7. glColor3f(Color.X,Color.Y,Color.Z);
  8. glBegin(GL_QUADS);
  9.  glTexCoord2f(0,0); glVertex3f(-Size.X/2,-Size.Y/2,0);
  10.  glTexCoord2f(1,0); glVertex3f(+Size.X/2,-Size.Y/2,0);
  11.  glTexCoord2f(1,1); glVertex3f(+Size.X/2,+Size.Y/2,0);
  12.  glTexCoord2f(0,1); glVertex3f(-Size.X/2,+Size.Y/2,0);
  13. glEnd;


Das ist die .Render-Prozedur meiner 2D-Objekte.

Sieht für mich gut aus, und ohne zusätzlichem Renderpass funktioniert es auch gut. :/

Im Anhang: Screenshots! In umgekehrter Reihenfolge...^^

Ich danke für die Aufmerksamkeit,

Robin

EDIT: HA! Schlau wie ich nunmal bin hab ich einfach mal nicht-geblendete Quads benutzt, und dann "funktionierts"^^ nur dass die Quads schwarz auf blau gerendert werden. Ich heng noch nen Screenshot hinten dran.

Nun stellt sich mir die Frage: WTF ich darf nicht blenden??

Edit2: Der Fehler scheint in der Farbe zu stecken... Schwarze Quads und unsichtbare Blendeffekte....

_________________
thanks to the internet we have rule 34, wich states that if something exists, theres a pornographic version of it,


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.009s | 15 Queries | GZIP : On ]