OES_standard_derivatives-Erweiterung
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Erweiterung OES_standard_derivatives ist Teil der WebGL-API und fügt die GLSL-Ableitungsfunktionen dFdx, dFdy und fwidth hinzu.
WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension() verfügbar.
Weitere Informationen finden Sie unter WebGL-Erweiterungen verwenden.
Konstanten
Diese Erweiterung stellt eine neue Konstante bereit, die in den Methoden hint() und getParameter() verwendet werden kann.
ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES-
Ein
GLenum, das die Genauigkeit der Ableitungsberechnung für die integrierten GLSL-FunktionendFdx,dFdyundfwidthangibt.
Integrierte GLSL-Funktionen
Die folgenden neuen Funktionen können im GLSL-Shader-Code verwendet werden, wenn diese Erweiterung aktiviert ist:
genType dFdx(genType p)
genType dFdy(genType p)
genType fwidth(genType p)
dFdx()-
Gibt die Ableitung in
xfür das Eingabeargumentpzurück, berechnet durch lokale Differenzenbildung. dFdy()-
Gibt die Ableitung in
yfür das Eingabeargumentpzurück, berechnet durch lokale Differenzenbildung. fwidth()-
Gibt die Summe der Beträge der Ableitungen in
xundyfür das Eingabeargumentpzurück, berechnet durch lokale Differenzenbildung. Das entsprichtabs(dFdx(p)) + abs(dFdy(p)).
dFdx() und dFdy() werden häufig verwendet, um die Filterbreite für das Anti-Aliasing prozeduraler Texturen zu schätzen.
Beispiele
Aktivieren der Erweiterungen:
gl.getExtension("OES_standard_derivatives");
gl.getExtension("EXT_shader_texture_lod");
Shader-Code, der Artefakte beim Umbrechen von Texturkoordinaten vermeidet:
<script type="x-shader/x-fragment">
#extension GL_EXT_shader_texture_lod : enable
#extension GL_OES_standard_derivatives : enable
uniform sampler2D myTexture;
varying vec2 texCoord;
void main(){
gl_FragColor = texture2DGradEXT(myTexture, mod(texCoord, vec2(0.1, 0.5)),
dFdx(texCoord), dFdy(texCoord));
}
</script>
Spezifikationen
| Spezifikation |
|---|
| WebGL OES_standard_derivatives Khronos Ratified Extension Specification> |