GL EXT framebuffer object: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
()
((Hioffentlich) verständlichere Erläuterung des attachable-Images-Prinzip)
Zeile 7: Zeile 7:
  
 
== Beschreibung ==
 
== Beschreibung ==
Diese Extension stellt ein Interface bereit um in Ziele zu rendern welche der GL nicht vom Fenstersystem bereitgestellt wurde.
+
Diese Extension stellt ein Interface bereit um in Ziele zu rendern welche nicht vom Fenstersystem bereitgestellt wurde. Sie ähneln damit den PBuffers, nur muss man sich hier nicht mit Plattformabhängigen wgl/glX-Befehlen herumplagen. Auch die lästigen Context-Switches entfallen.
  
Diese neuen Renderziele werden innerhalb dieser Extension als "Framebufferbilder" bezeichnet. ''(Die englische Spezifikation spricht von "framebuffer-attachable images". Ich unterstellen den Lesern dieser Übersetzung ausreichend Intelligenz um mit dem neuen Begriff klar zu kommen. ;) )''
+
Diese neuen Renderziele sind so genannte Framebufferobjekte. Sie selber stellen aber noch keine Puffer bereit, daher kann man an sie Renderbuffer und Texturen binden. Dies ist möglich für die bisherigen logischen standard GL Puffertypen: color, depth, und stencil.  
 
 
Diese Extension stellt einen Mechanismus zur Verfügung um diese neuen Framebufferbilder an den [[Framebuffer]] zu binden. Dies ist möglich für die bisherigen logischen standard GL Puffertypen: color, depth, und stencil.  
 
 
{{Hinweis|Ein Binden eines Framebufferbildes an den Accumationbuffer wird hier auf eine spätere Extension verschoben.}}
 
{{Hinweis|Ein Binden eines Framebufferbildes an den Accumationbuffer wird hier auf eine spätere Extension verschoben.}}
  
Zeile 71: Zeile 69:
 
== Ressourcen ==
 
== Ressourcen ==
 
http://www.opengl.org/documentation/extensions/EXT_framebuffer_object.txt
 
http://www.opengl.org/documentation/extensions/EXT_framebuffer_object.txt
 +
http://download.nvidia.com/developer/presentations/2005/GDC/OpenGL_Day/OpenGL_FrameBuffer_Object.pdf

Version vom 20. Februar 2006, 16:13 Uhr

EXT_framebuffer_object

Info DGL.png Die Orginalspezifikation finden Sie unter "Ressourcen" am Ende des Artikels.


Abfragestring

GL_EXT_framebuffer_object

Beschreibung

Diese Extension stellt ein Interface bereit um in Ziele zu rendern welche nicht vom Fenstersystem bereitgestellt wurde. Sie ähneln damit den PBuffers, nur muss man sich hier nicht mit Plattformabhängigen wgl/glX-Befehlen herumplagen. Auch die lästigen Context-Switches entfallen.

Diese neuen Renderziele sind so genannte Framebufferobjekte. Sie selber stellen aber noch keine Puffer bereit, daher kann man an sie Renderbuffer und Texturen binden. Dies ist möglich für die bisherigen logischen standard GL Puffertypen: color, depth, und stencil.

Info DGL.png Ein Binden eines Framebufferbildes an den Accumationbuffer wird hier auf eine spätere Extension verschoben.

Wenn ein Framebufferbild an den Framebuffer gebunden wurde, dient es als Quelle für Readoperationen wie glReadPixels und als Ziel für Fragmentoperationen.


Durch die Einführung von Framebufferbildern als Renderziel wird nichtsichtbares Rendern (offscreen rendering) ermöglicht.

Weiterhin wird das Rendern in Texturen dahingehend vereinfacht, dass man das Texturbild als Framebufferbild binden kann, und so direkt in die Textur rendern kann. Dies geschieht indem man durch die Angabe von Mipmap-Level, Cubemap-Fläche (für Cubemap Texturen) und einem Z-Offset (nur bei 3D Texturen) ein bestimmtes Bild eines Texturobjekts wählt.

Die "Render To Texture Semantik" ist vergleichbar mit dem klassischen Rendern in den Framebuffer mit anschließendem Aufruf von glCopyTexSubImage. Vorteil der neuen Methode ist, dass man ads selbe Ergebnis erhält dabei aber auf das Kopieren der Daten verzichten kann.

Verwendung

Kombinierungsarten

Operanden

Weitere Sachen

Hinweise

Neue Funktionen

Neue Tokens

Neue Parameterwerte

Neue States

Abhängigkeiten

Interne Links auf Extensions von denen die hier beschriebene abhängt


Ressourcen

http://www.opengl.org/documentation/extensions/EXT_framebuffer_object.txt http://download.nvidia.com/developer/presentations/2005/GDC/OpenGL_Day/OpenGL_FrameBuffer_Object.pdf