From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/fr/web/api/webglshader/index.html | 109 ++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 files/fr/web/api/webglshader/index.html (limited to 'files/fr/web/api/webglshader') diff --git a/files/fr/web/api/webglshader/index.html b/files/fr/web/api/webglshader/index.html new file mode 100644 index 0000000000..45fa736678 --- /dev/null +++ b/files/fr/web/api/webglshader/index.html @@ -0,0 +1,109 @@ +--- +title: WebGLShader +slug: Web/API/WebGLShader +tags: + - Reference + - WebGL + - WebGLShader +translation_of: Web/API/WebGLShader +--- +
{{APIRef("WebGL")}}
+ +

Le WebGLShader fait partie de l'API WebGL et peut être un shader de sommet ou de fragment. Un {{domxref ("WebGLProgram")}} requiert les deux types de shaders.

+ +

Description

+ +

Pour créer un WebGLShader, utiliser {{domxref("WebGLRenderingContext.createShader")}}, puis reliez-y le code source GLSL en utilisant {{domxref("WebGLRenderingContext.shaderSource()")}}, et enfin, appelez {{domxref ("WebGLRenderingContext.compileShader()")}} pour terminer et compiler le shader. À ce stade, le WebGLShader n'est toujours pas sous une forme utilisable et doit toujours être relié à un {{domxref ("WebGLProgram")}}.

+ +
function creerShader (gl, codeSource, type) {
+  // Compile un shader de type soit gl.VERTEX_SHADER, soit gl.FRAGMENT_SHADER
+  var shader = gl.createShader( type );
+  gl.shaderSource( shader, codeSource );
+  gl.compileShader( shader );
+
+  if ( !gl.getShaderParameter(shader, gl.COMPILE_STATUS) ) {
+    var info = gl.getShaderInfoLog( shader );
+    throw 'Impossible de compiler le programme WebGL.\n\n' + info;
+  }
+  return shader;
+}
+
+ +

Voir {{domxref("WebGLProgram")}} pour des informations sur la liaison de shaders.

+ +

Exemples

+ +

Création d'un shader de sommet

+ +

Notez qu'il existe de nombreuses autres stratégies pour écrire des chaînes de code source de shader et y accéder. Ces exemples sont à titre d'illustration seulement.

+ +
var sourceShaderDeSommet =
+  'attribute vec4 position;\n' +
+  'void main() {\n' +
+  '  gl_Position = position;\n' +
+  '}\n';
+
+// Utilisez la function creerShader de l'exemple ci-dessus
+var shaderDeSommet = creerShader(gl, sourceShaderDeSommet, gl.VERTEX_SHADER)
+
+ +

Création d'un shader de fragment

+ +
var sourceShaderDeFragment =
+  'void main() {\n' +
+  '  gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n' +
+  '}\n';
+
+// Utilisez la fonction creerShader de l'exemple ci-dessus
+var shaderDeFragment = creerShader(gl, sourceShaderDeFragment, gl.FRAGMENT_SHADER)
+
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('WebGL', "#5.8", "WebGLShader")}}{{Spec2('WebGL')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.WebGLShader.WebGLShader")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf