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

Aktuelle Zeit: Do Mär 28, 2024 21:38

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glClearNamedFramebuffer
BeitragVerfasst: So Nov 12, 2017 16:28 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
Hallo Leute,

ich versuche gerade die Texturen, die ich an mein Fbo angehängt habe mit unterschiedlichen Farben zu clearen. Idealerweise möchte ich das mit glClearNamedFramebuffer machen, allerdings rendert bei mir gar nichts, sobald ich den Aufruf durchführe. Der Code sieht aktuell ungefähr aus:
Code:
  1.  
  2. // Texturen erzeugen und attachen -> OK!
  3.  
  4. GLenum drawbuffers[3];
  5. drawbuffers[0] = GL_COLOR_ATTACHMENT0;
  6. drawbuffers[1] = GL_COLOR_ATTACHMENT1;
  7. drawbuffers[2] = GL_COLOR_ATTACHMENT2;
  8. glNamedFramebufferDrawBuffers(fboId, 3, drawbuffers);
  9.  
  10. GLuint albedoClearColor[4] = { 63, 63, 63, 0 };
  11. GLuint normalClearColor[4] = { 0, 0, 0, 0 };
  12. GLfloat luminanceClearColor[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
  13. GLfloat depthClearValue = 0.0f;
  14.  
  15. glClearNamedFramebufferuiv(_fboId, GL_COLOR, 0, this->albedoClearColor);
  16. glClearNamedFramebufferuiv(_fboId, GL_COLOR, 1, this->normalClearColor);
  17. glClearNamedFramebufferfv(_fboId, GL_COLOR, 2, this->luminanceClearColor);
  18. glClearNamedFramebufferfv(_fboId, GL_DEPTH, 0, &this->depthClearValue);


Wenn ich stattdessen
Code:
  1. glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  2. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

benutze wird alles gezeichnet, nur halt eben alles mit der gleichen clearColor... !?

Die Spezifikation der Funktion hab ich gelesen und Beispiele zur Anwendung sind kaum zu finden. Da ich davon ausgehe, dass glClearBuffer() von den Parametern her gleich funktioniert (abgesehen von der Id des Fbo) hab ich mich daran orientiert. Interessanter weise funktioniert das allerdings auch nicht.

Wenn ich als DrawBuffer die GL_DRAW_BUFFERi Konstanten verwende erhalte ich von glGetError den Fehler 1281, benutze ich die Werte wie oben im Code, erhalte ich keinen Fehler!?
Der Framebuffer meldet GL_FRAMEBUFFER_COMPLETE (Was mich nicht wundert, da sonst alle DrawCalls auf das Fbo richtig ausgeführt werden)
Wie wende ich diese Methoden also richtig an?

Gruß,
Sellmann

Edit: Die internen Formate der Texturen sind wie folgt:
Albedo: GL_RGBA8
Normal: GL_RGB8
Luminance: GL_RGBA32F
Depth: GL_DEPTH_COMPONENT32


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

_________________
Klar Soweit?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glClearNamedFramebuffer
BeitragVerfasst: So Nov 12, 2017 20:44 
Offline
DGL Member

Registriert: Fr Mai 11, 2012 13:25
Beiträge: 229
Programmiersprache: c++, c, JavaScript
Hast Du es mal ohne das "named"-zeugs versucht in etwa so?

Code:
  1.  
  2. glBindFrameBuffer(...
  3.  
  4. for(i=0...
  5. {
  6.    glDrawBuffer(Attachmenti);
  7.    glClearColor(COLOR[i]);
  8.    glClear(GL_COLOR_BUFFER_BIT);
  9. }
  10.  
  11.  

_________________
"Pixel, ich bin dein Vater."
-Darf Shader


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glClearNamedFramebuffer
BeitragVerfasst: Di Nov 14, 2017 12:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 587
Programmiersprache: C++
Sellmann hat geschrieben:
Code:
  1. GLfloat depthClearValue = 0.0f;
Hat das seine Richtigkeit? Ich benutze immer
Code:
  1. glClearDepth(1.0f);

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


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 » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 23 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.051s | 18 Queries | GZIP : On ]