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

Aktuelle Zeit: Mo Nov 20, 2017 01:19

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: 203
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.  


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: 530
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: 0 Mitglieder und 1 Gast


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.030s | 17 Queries | GZIP : On ]