Füllrate: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Paar Rechtschreibfehler weniger.)
K (Tippfehler, Kleinigkeiten...)
Zeile 3: Zeile 3:
 
Der Begriff Füllratengebunden bezieht sich darauf, dass die Anzahl der [[Fragment]]e, die berechnet werden können, im Normalfall der ausschlaggebende Punkt für die Framerate ist. Dies ist natürlich nicht auf allen Grafikkarten gleich, jedoch sind die Verhältnisse zwischen [[Vertex]]anzahl und [[Fragment]]anzahl, die je Sekunde gezeichnet werden können, meistens doch recht ähnlich.
 
Der Begriff Füllratengebunden bezieht sich darauf, dass die Anzahl der [[Fragment]]e, die berechnet werden können, im Normalfall der ausschlaggebende Punkt für die Framerate ist. Dies ist natürlich nicht auf allen Grafikkarten gleich, jedoch sind die Verhältnisse zwischen [[Vertex]]anzahl und [[Fragment]]anzahl, die je Sekunde gezeichnet werden können, meistens doch recht ähnlich.
  
Um zu testen, ob eine Applikation füllratengebunden ist reicht es aus, die Applikation mit niedrigerer Auflösung laufen zu lassen und zu schauen, ob sich an der Geschwindigkeit Unterschiede bemerkbar machen.
+
Um zu testen, ob eine Applikation füllratengebunden ist, reicht es aus, die Applikation mit niedrigerer Auflösung laufen zu lassen und zu schauen, ob sich an der Geschwindigkeit Unterschiede bemerkbar machen.
  
Einige Möglichkeiten um die Füllrate zu schonen (und somit Füllratengebundene Applikationen zu beschleunigen):
+
Einige Möglichkeiten, um die Füllrate zu schonen (und somit füllratengebundene Applikationen zu beschleunigen), sind:
 
*Auflösung verringern
 
*Auflösung verringern
*Objekte von vorne nach hinten zeichnen um Gebrauch vom [[glDepthFunc|Tiefentest]] zu machen, welcher Fragmente recht früh verwirft
+
*Objekte von vorne nach hinten zeichnen, um Gebrauch vom [[glDepthFunc|Tiefentest]] zu machen, welcher Fragmente recht früh verwirft
 
*Gebrauch vom [[glAlphaFunc|Alphatest]] machen, um [[Fragment]]e mit einem sehr niedrigem Alpha-Wert sehr früh zu verwerfen
 
*Gebrauch vom [[glAlphaFunc|Alphatest]] machen, um [[Fragment]]e mit einem sehr niedrigem Alpha-Wert sehr früh zu verwerfen
 
*Die Rendereinstellungen je [[Fragment]] herabsetzen, also weniger Texturen, kürzerer [[Fragment]] [[Shader]], ...
 
*Die Rendereinstellungen je [[Fragment]] herabsetzen, also weniger Texturen, kürzerer [[Fragment]] [[Shader]], ...
 
*Die Szene weniger oft rendern (weniger Rendering Passes)
 
*Die Szene weniger oft rendern (weniger Rendering Passes)
 
*[[Occlusion Culling]]
 
*[[Occlusion Culling]]
*[[Mipmapping]] bei Texturen um die Lokalität der Texturzugriffe zu erhöhen
+
*[[Mipmapping]] bei Texturen, um die Lokalität der Texturzugriffe zu erhöhen
*[[Bilineare Filterung]] (anstatt linear, trilinear oder [[anisotrphische Filterung]])
+
*[[Bilineare Filterung]] (anstatt linear, trilinear oder [[anisotropes Filtern]])
Wenn viele Rendering Passes die recht komplex sind notwendig sind, so kann man auch im ersten Rendering Pass die gesamte Szene nur in den Tiefenbuffer zeichnen (diese Technik wird beispielsweise in Quake 3 verwendet). Bei den nächsten Passes werden dadurch alle nicht sichtbaren Fragmente sofort durch den Tiefentest verworfen.
+
Wenn viele Rendering Passes, die recht komplex sind, notwendig sind, so kann man auch im ersten Rendering Pass die gesamte Szene nur in den Tiefenbuffer zeichnen (diese Technik wird beispielsweise in Quake 3 verwendet). Bei den nächsten Passes werden dadurch alle nicht sichtbaren Fragmente sofort durch den Tiefentest verworfen.
  
Einige Dinge die '''nicht''' oder nur wenig auf die Füllrate Einfluss nehmen:
+
Einige Dinge, die '''nicht''' oder nur wenig Einfluss auf die Füllrate nehmen:
 
*[[LOD|Level of Detail]]
 
*[[LOD|Level of Detail]]
 
*[[Vertex]] [[Shader]]
 
*[[Vertex]] [[Shader]]
 
*[[Frustum Culling]]
 
*[[Frustum Culling]]
*Texturgröße, sofern genug Viedospeicher vorhanden ist und [[Mipmapping]] verwendet wird
+
*Texturgröße, sofern genug Videospeicher vorhanden ist und [[Mipmapping]] verwendet wird.

Version vom 6. Mai 2008, 22:30 Uhr

Die Füllrate einer Grafikkarte beschreibt die Fragmente, die je Sekunde berechnet werden können. Da der Aufwand für diese Berechnungen jedoch sehr unterschiedlich sein kann, sind diese Angaben mit Vorsicht zu geniesen, denn meistens werden die Angaben für sehr primitive Rendereinstellungen gemacht (untexturiert, kein Fragment Shader, ...).

Der Begriff Füllratengebunden bezieht sich darauf, dass die Anzahl der Fragmente, die berechnet werden können, im Normalfall der ausschlaggebende Punkt für die Framerate ist. Dies ist natürlich nicht auf allen Grafikkarten gleich, jedoch sind die Verhältnisse zwischen Vertexanzahl und Fragmentanzahl, die je Sekunde gezeichnet werden können, meistens doch recht ähnlich.

Um zu testen, ob eine Applikation füllratengebunden ist, reicht es aus, die Applikation mit niedrigerer Auflösung laufen zu lassen und zu schauen, ob sich an der Geschwindigkeit Unterschiede bemerkbar machen.

Einige Möglichkeiten, um die Füllrate zu schonen (und somit füllratengebundene Applikationen zu beschleunigen), sind:

Wenn viele Rendering Passes, die recht komplex sind, notwendig sind, so kann man auch im ersten Rendering Pass die gesamte Szene nur in den Tiefenbuffer zeichnen (diese Technik wird beispielsweise in Quake 3 verwendet). Bei den nächsten Passes werden dadurch alle nicht sichtbaren Fragmente sofort durch den Tiefentest verworfen.

Einige Dinge, die nicht oder nur wenig Einfluss auf die Füllrate nehmen: