Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. WebGLProgram

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

WebGLProgram

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

* Some parts of this feature may have varying levels of support.

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

DasWebGLProgram ist Teil derWebGL API und ist eine Kombination aus zwei kompiliertenWebGLShader, bestehend aus einem Vertex-Shader und einem Fragment-Shader (beide in GLSL geschrieben).

WebGLObject WebGLProgram

Um einWebGLProgram zu erstellen, rufen Sie die FunktioncreateProgram() des GL-Kontextes auf. Nachdem Sie die Shader-Programme mitattachShader() angehängt haben, verlinken Sie diese zu einem nutzbaren Programm. Dies wird im untenstehenden Code gezeigt.

js
const program = gl.createProgram();// Attach pre-existing shadersgl.attachShader(program, vertexShader);gl.attachShader(program, fragmentShader);gl.linkProgram(program);if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {  const info = gl.getProgramInfoLog(program);  throw new Error(`Could not compile WebGL program. \n\n${info}`);}

SieheWebGLShader für Informationen zur Erstellung desvertexShader undfragmentShader im obigen Beispiel.

Beispiele

Verwendung des Programms

Die Schritte, um mit dem Programm tatsächlich zu arbeiten, bestehen darin, der GPU mitzuteilen, das Programm zu verwenden, die entsprechenden Daten und Konfigurationsoptionen zu binden und schließlich etwas auf den Bildschirm zu zeichnen.

js
// Use the programgl.useProgram(program);// Bind existing attribute datagl.bindBuffer(gl.ARRAY_BUFFER, buffer);gl.enableVertexAttribArray(attributeLocation);gl.vertexAttribPointer(attributeLocation, 3, gl.FLOAT, false, 0, 0);// Draw a single trianglegl.drawArrays(gl.TRIANGLES, 0, 3);

Löschen des Programms

Wenn beim Verlinken des Programms ein Fehler auftritt oder Sie ein bestehendes Programm löschen möchten, ist es so einfach,WebGLRenderingContext.deleteProgram() auszuführen. Dies gibt den Speicher des verlinkten Programms frei.

js
gl.deleteProgram(program);

Spezifikationen

Specification
WebGL Specification
# 5.6

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp