glHistogram: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(an manpages angepasst)
(Siehe auch)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glHistogram =
 
= glHistogram =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glHistogram''' - definiert eine [[Histogramm]]-Tabelle.
 
'''glHistogram''' - definiert eine [[Histogramm]]-Tabelle.
Zeile 28: Zeile 29:
  
 
== Beschreibung ==  
 
== Beschreibung ==  
 +
[[Bild:Histogramm.png|right|framed|Das Histogramm des DGL-Wiki Logos.]]
 
Wenn '''GL_HISTOGRAM''' aktiviert ist, werden die RGBA-Farbkomponeten zu Histogramm-Tabellenindizes durch Mapping auf den Bereich [0, 1] konvertiert, mit der Breite der Histogramm-Tabelle multipliziert und auf den nächsten Integer-Wert gerundet. Die durch die RGBA-Indizes ausgewählten Tabelleneinträge werden dann erhöht. (Falls das interne Format der Histogramm-Tabelle die Helligkeits-Komponente enthält, bestimmt der von der R-Farbkomponente abgeleitete Index den zu erhöhenden Helligkeits-Tabelleneintrag.) Falls ein Histogramm-Tabelleneintrag über seinen Maximalwert erhöht wird, wird sein Wert undefiniert (Dies ist kein Fehler.)  
 
Wenn '''GL_HISTOGRAM''' aktiviert ist, werden die RGBA-Farbkomponeten zu Histogramm-Tabellenindizes durch Mapping auf den Bereich [0, 1] konvertiert, mit der Breite der Histogramm-Tabelle multipliziert und auf den nächsten Integer-Wert gerundet. Die durch die RGBA-Indizes ausgewählten Tabelleneinträge werden dann erhöht. (Falls das interne Format der Histogramm-Tabelle die Helligkeits-Komponente enthält, bestimmt der von der R-Farbkomponente abgeleitete Index den zu erhöhenden Helligkeits-Tabelleneintrag.) Falls ein Histogramm-Tabelleneintrag über seinen Maximalwert erhöht wird, wird sein Wert undefiniert (Dies ist kein Fehler.)  
  
Zeile 37: Zeile 39:
 
    
 
    
 
<br>
 
<br>
 +
 
== Hinweise ==
 
== Hinweise ==
 
'''glHistogram''' ist erst ab GL Version 1.2 oder höher nutzbar.
 
'''glHistogram''' ist erst ab GL Version 1.2 oder höher nutzbar.
Zeile 44: Zeile 47:
 
Der Höchstwert für den Parameter ''width'' ist implementierungsabhängig, muß aber mindestens 32 sein.
 
Der Höchstwert für den Parameter ''width'' ist implementierungsabhängig, muß aber mindestens 32 sein.
  
<br>
+
 
 +
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
 
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' keinen der zulässigen Werte hat.
 
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' keinen der zulässigen Werte hat.
Zeile 58: Zeile 62:
 
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glHistogram''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.  
 
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glHistogram''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.  
  
<br>
+
 
 +
 
 
== Zugehörige Wertrückgaben ==
 
== Zugehörige Wertrückgaben ==
 
[[glGetHistogramParameter]]
 
[[glGetHistogramParameter]]
Zeile 64: Zeile 69:
 
== Siehe auch ==
 
== Siehe auch ==
 
[[glGetHistogram]], [[glResetHistogram]]
 
[[glGetHistogram]], [[glResetHistogram]]
 +
 +
Hintergrundwissen: [[Histogram]]
 +
  
 
[[Kategorie:GL|Histogram]]
 
[[Kategorie:GL|Histogram]]

Aktuelle Version vom 1. Februar 2007, 15:27 Uhr

glHistogram

Name

glHistogram - definiert eine Histogramm-Tabelle.


Delphi-Spezifikation

procedure glHistogram(target : TGLenum; width : TGLsizei; 
                      internalformat : TGLenum; sink : TGLboolean)


Parameter

target Das Histogramm, dessen Parameter gesetzt werden. Muss einer der folgenden Konstanten sein: GL_HISTROGRAM oder GL_PROXY_HISTOGRAM.
width Anzahl der Einträge des Histogramms. Muss eine Zahl vom Typ 2^n (n: Integer) sein. (2,4,8,16,...)
internalformat Das interne Format der Histogramm-Daten. Zulässige Werte sind GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12 und GL_RGBA16.
sink Falls GL_TRUE, werden die Pixel durch den Histogramm-Prozess zerstört und es findet kein Zeichnen oder Laden einer Textur statt. Falls GL_FALSE, werden die Pixel nach dem Histogramm-Schritt zum Minmax-Prozess weitergeleitet.

Beschreibung

Das Histogramm des DGL-Wiki Logos.

Wenn GL_HISTOGRAM aktiviert ist, werden die RGBA-Farbkomponeten zu Histogramm-Tabellenindizes durch Mapping auf den Bereich [0, 1] konvertiert, mit der Breite der Histogramm-Tabelle multipliziert und auf den nächsten Integer-Wert gerundet. Die durch die RGBA-Indizes ausgewählten Tabelleneinträge werden dann erhöht. (Falls das interne Format der Histogramm-Tabelle die Helligkeits-Komponente enthält, bestimmt der von der R-Farbkomponente abgeleitete Index den zu erhöhenden Helligkeits-Tabelleneintrag.) Falls ein Histogramm-Tabelleneintrag über seinen Maximalwert erhöht wird, wird sein Wert undefiniert (Dies ist kein Fehler.)

Histogramme werden nur für RGBA-Pixel ausgeführt (auch wenn diese ursprünglich als Color-Indizes definiert und ins RGBA-Format durch Indextabellen-Lookup konvertiert wurden). Histogramme werden mit glEnable aktiviert und mit glDisable dekaktiviert.

Wenn target GL_HISTOGRAM ist, definiert glHistogram die aktuelle Histogramm-Tabelle mit width Einträgen des durch internalformat angegebenen Formats. Die Einträge werden von 0 bis width - 1 indiziert und alle Einträge werden mit 0 initialisiert. Die Werte in der vorherigen Histogramm-Tabelle, falls welche existierten, gehen verloren. Falls sink GL_TRUE ist, werden die Pixel nach der Histogramm-Operation aufgegeben; keine weiteren Pixelverarbeitungen finden statt und kein Zeichnen, Texturladen oder Zurücklesen von Pixel wird darauf folgen.

Wenn target gleich GL_PROXY_HISTOGRAM ist, berechnet glHistogram alle Zustandsinformationen, als ob die Histogramm-Tabelle definiert werden würde, definiert selbst aber keine neue Tabelle. Falls die abgefragte Histogramm-Tabelle zu groß ist, um unterstützt zu werden, werden die Zustandsinformationen auf 0 gesetzt. Dies sichert eine Möglichkeit zu bestimmen, ob eine Histogramm-Tabelle mit den gegebenen Parameter unterstützt werden kann.


Hinweise

glHistogram ist erst ab GL Version 1.2 oder höher nutzbar.

glHistogram ist nur verfügbar, wenn GL_ARB_imaging von glGetString mit dem Argument GL_EXTENSIONS zurückgeliefert wird.

Der Höchstwert für den Parameter width ist implementierungsabhängig, muß aber mindestens 32 sein.


Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn target keinen der zulässigen Werte hat.

GL_INVALID_ENUM wird generiert, wenn internalformat keinen der zulässigen Werte hat.

GL_INVALID_VALUE wird generiert, wenn width kleiner als 0 ist oder nicht vom Typ 2^n (n: Integer) ist.

GL_INVALID_VALUE wird generiert, wenn sink weder den Wert GL_TRUE noch GL_FALSE hat.

GL_TABLE_TOO_LARGE wird generiert, wenn das angeforderte Histogramm zu groß und target auf GL_HISTOGRAM gesetzt ist.

GL_INVALID_OPERATION wird generiert, wenn glHistogram innerhalb eines glBegin-glEnd Blocks aufgerufen wird.


Zugehörige Wertrückgaben

glGetHistogramParameter

Siehe auch

glGetHistogram, glResetHistogram

Hintergrundwissen: Histogram