Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. Web API
  3. WebGLProgram

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

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 ⁨2015年7月⁩.

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

WebGLProgramWebGL API の一部で、 は、頂点シェーダーとフラグメントシェーダー(どちらも GLSL で書かれています)の 2 つのコンパイル済みWebGLShader の組み合わせです。

WebGLObject WebGLProgram

WebGLProgram を作成するには、 GL コンテキストのcreateProgram() 関数を呼び出します。attachShader() を使用してシェーダープログラムを割り当てた後、使用可能なプログラムにリンクします。以下のコードに示します。

js
const program = gl.createProgram();// 既存のシェーダーを取り付けるgl.attachShader(program, vertexShader);gl.attachShader(program, fragmentShader);gl.linkProgram(program);if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {  const info = gl.getProgramInfoLog(program);  throw `WebGL プログラムをコンパイルできませんでした。\n\n${info}`;}

上の例のvertexShaderfragmentShader の作成についてはWebGLShader を参照してください。

プログラムの使用

プログラムを使って実際に作業を行うには、 GPU にプログラムを使用するように指示し、適切なデータと設定オプションをバインドし、最後に画面に何かを描画します。

js
// プログラムを使用gl.useProgram(program);// 既存の属性データをバインドgl.bindBuffer(gl.ARRAY_BUFFER, buffer);gl.enableVertexAttribArray(attributeLocation);gl.vertexAttribPointer(attributeLocation, 3, gl.FLOAT, false, 0, 0);// 単一の三角形を描画gl.drawArrays(gl.TRIANGLES, 0, 3);

プログラムの削除

プログラムのリンクにエラーがあった場合、または既存のプログラムを削除したい場合は、WebGLRenderingContext.deleteProgram() を実行するだけです。これにより、リンクされたプログラムのメモリが解放されます。

js
gl.deleteProgram(program);

仕様書

Specification
WebGL Specification
# 5.6

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp