glConvolutionParameter
Inhaltsverzeichnis
glConvolutionParameter
Name
glConvolutionParameterf, glConvolutionParameteri, glConvolutionParameterfv, glConvolutionParameteriv - Setzt Convolution-Parameter
Delphi-Spezifikation
procedure glConvolutionParameterf(target : GLenum; pname : GLenum; params : GLfloat) procedure glConvolutionParameteri(target : GLenum; pname : GLenum; params : GLint)
Parameter
target | Das Ziel für die Comvolution-Parameter. Muss vom Typ GL_CONVOLUTION_1D, GL_CONVOLUTION_2D oder GL_SEPARABLE_2D sein. |
---|---|
pname | Der zu setzende Parameter. Muss GL_CONVOLUTION_BORDER_MODE sein. |
params | Der Parameter. Muss GL_REDUCE, GL_CONSTANT_BORDER oder GL_REPLICATE_BORDER sein. |
Delphi-Spezifikation
procedure glConvolutionParameterfv(target : GLenum; pname : GLenum; const params : PGLfloat) procedure glConvolutionParameteriv(target : GLenum; pname : GLenum; const params : PGLint)
Parameter
target | Das Ziel für die Comvolution-Parameter. Muss vom Typ GL_CONVOLUTION_1D, GL_CONVOLUTION_2D oder GL_SEPARABLE_2D sein. |
---|---|
pname | Der zu setzende Parameter. Muss GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE oder GL_CONVOLUTION_FILTER_BIAS sein. |
params | Der Parameter. Wenn pname GL_CONVOLUTION_BORDER_MODE ist, dann muss params GL_REDUCE, GL_CONSTANT_BORDER oder GL_REPLICATE_BORDER sein. Andernfalls muss ein einer vierdimensionaler Vektor (für Rot, Grün, Blau bzw. Alpha) zum Skalieren (wenn pname GL_CONVOLUTION_FILTER_SCALE ist) oder zum Biasing (wenn pname GL_CONVOLUTION_FILTER_BIAS ist) eines Convolution-Filter-Kernels oder zum Setzen der konstanten Rand-Farbe (wenn pname GL_CONVOLUTION_BORDER_COLOR ist) verwendet werden. |
Beschreibung
glConvolutionParameter setzt den Wert für einen Convolution-Parameter.
Mit target wählt man den Convolution-Filter, der bearbeitet werden soll. Zulässig sind Variablen mit dem Typ GL_CONVOLUTION_1D, GL_CONVOLUTION_2D oder GL_SEPARABLE_2D.
Mit pname wählt man den Parameter, der verändert werden soll. GL_CONVOLUTION_FILTER_SCALE und GL_CONVOLUTION_FILTER_BIAS beeinflussen die Definition des Convolution-Filter-Kernels (siehe glConvolutionFilter1D, glConvolutionFilter2D, and glSeparableFilter2D für mehr Details). In diesen Fällen ist params ein Array mit vier Werten für Rot, Grün, Blau bzw Alpha. Der Standard-Wert für GL_CONVOLUTION_FILTER_SCALE ist (1, 1, 1, 1), für GL_CONVOLUTION_FILTER_BIAS
(0, 0, 0, 0).
Der pname-Wert GL_CONVOLUTION_BORDER_MODE beeinflusst den Convolution-Rand-Modus. Zulässige Modi sind:
- GL_REDUCE
- Das Bild, das durch die Convolution erzeugt wird, ist kleiner als das ursprüngliche Bild. Wenn die Filter-Breite Wf ist, die Höhe Hf und die ürsprüngliche Breite Ws und Höhe Hs, dann hat das erzeugte Bild die Breite Ws - Wf + 1 und die Höte Hs - Hf + 1. (Wenn diese Operation ein Bild mit der Breite und Höhe 0 erzeugen würde, bleibt das Ergebnis 0, ohne das ein Fehler generiert wird.) Die Koordinaten des fertigen Bildes sind (0, 0).
- GL_CONSTANT_BORDER
- Das Bild, das durch die Convolution erzeugt wird, hat die gleiche Größe wie das ursprüngliche Bild und wird so generiert, wie wenn das ursprüngliche Bild von Pixeln mit der Farbe - festgelegt durch GL_CONVOLUTION_BORDER_COLOR - umgeben wäre.
- GL_REPLICATE_BORDER
- Das Bild, das durch die Convolution erzeugt wird, hat die gleiche Größe wie das ursprüngliche Bild und wird so generiert, wie wenn die äußersten Pixel des Rands des Quellbildes wiederholt würden.
Hinweise
glConvolutionParameter steht nur zur Verfügung, wenn GL_ARB_imaging in dem String enthalten ist, der von glGetString mit dem Argument GL_EXTENSIONS zurückgeliefert wird.
In Fällen, in denen Fehler aus den Maßen von ungültigen Bilddimensionen folgen würden, werden die Dimensionen nach der Convolution überprüft, und nicht die Dimensionen des Quellbildes. Zum Beispiel erfordert glTexImage1D ein Bild mit den Maßen 2^n. Wenn der GL_REDUCE Rand-Modus aktiviert ist, dann muss das Quellbild um 1 größer als die finale 2^n-Größe des 1D-Filter-Kernels sein.
Fehlermeldungen
GL_FEHLER wird generiert, wenn....
GL_INVALID_ENUM wird generiert, wenn target einen unzulässigen Wert hat.
GL_INVALID_ENUM wird generiert, wenn pname einen unzulässigen Wert hat.
GL_INVALID_ENUM wird generiert, wenn pname GL_CONVOLUTION_BORDER_MODE ist und params GL_REDUCE, GL_CONSTANT_BORDER oder GL_REPLICATE_BORDER ist.
GL_INVALID_OPERATION wird generiert wenn glConvolutionParameter innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
Siehe auch
glConvolutionFilter1D, glConvolutionFilter2D, glSeparableFilter2D, glGetConvolutionParameter