付録 B WebGLリファレンス WebGL Reference 付録B WebGLリファレンス B.1 WebGL APIリファレンス この付録は、WebGL JavaScript APIのすべての関数、その引数、戻り値を簡単に説明し、API の概要を示す。WebGLとOpenGL ES 2 APIの詳細は、http://www.khronos.org/registry/ webgl/specs/1.0/のWebGL仕 様 書、http://www.khronos.org/registry/gles/のOpenGL ES 2 仕様書を直接参照していただきたい。リストB.1 には、canvas要素を作ってWebGLコンテ キストを手に入れるための概要を示してある。 リストB.1 WebGLコンテキストを作る // canvas要素を作る var canvas = document.createElement("canvas"); // キャンバスをドキュメントに追加する document.body.appendChild(canvas); // いくつかのパラメータを設定する var parms = { alpha : true, stencil : false, antialias : true, }; // webglコンテキストを作る // 注意: "webgl"がサポートされるまでは、"experimental-webgl"を使う var gl = canvas.getContext("webgl", parms); 表B-1には、指定できるパラメータをまとめてある。ブラウザは、alpha、premultipliedAlpha、 preserveDrawingBufferパラメータだけをサポートすればよいことに注意しよう。 表B-1 WebGLパラメータ パラメータ B-2 デフォルト 説明 alpha true 描画バッファのアルファチャネルを有効にする。 depth true サポートされていてtrueなら深度バッファが有効にな る。 stencil false サポートされていてtrueならステンシルバッファが有 効になる。 付録B WebGLリファレンス (表B-1 続き) antialias false サポートされていてtrueなら実装固有のテクニックを 使ったアンチエイリアスが有効になる。 premultipliedAlpha true trueなら描画バッファの乗算済みアルファが有効にな preserveDrawingBuffer false サポートされていてtrueなら、明示的にクリアされる まで描画バッファは維持される。 る。 ▶ データ型 WebGLは、複数の数値型を含め、OpenGL ESで使われているデータ型を引き継いでいる。 これらの数値型は、JavaScriptならすべてnumber型で表現されるものだ。この付録でほかの データ型が使われているのは、関数が期待している型を示しているだけである。表B-2 には、 この付録で使われるデータ型をまとめてある。 文字列、オブジェクト、数値のほか、WebGLはさまざまな値のためにシンボル定数も使って いる。これらは、webglコンテキストオブジェクトの大文字プロパティになっているので見分 けられる。この付録では、enumデータ型を使ってそれらの定数を参照する。 表B-2 データ型 型名 説明 enum WebGLの列挙値。たとえば、gl.BUFFER_SIZE int 符号付き整数値 uint 符号なし整数値 float 浮動小数点数値 メモ 表 B-2 のデータ型は、WebGL 仕様に記述されているものを単純化したものである。しかし、一般 にこれらの型は JavaScript では number 型に変換されるので、これらの型について気にする必要 はない。 B-3 付録B WebGLリファレンス ▶ 型付き配列 WebGLは、さまざまなデータ型を処理するために新しい型付き配列オブジェクトを使っている。 型付き配列の詳細は、http://www.khronos.org/registry/typedarray/specs/latest/ の仕様書を参照していただきたい。表B-3 には、ここで使う配列型をまとめてある。 表B-3 型付き配列 型 説明 Uint16Array 符号なし 16 ビット整数値 Uint32Array 符号なし 32 ビット整数値 Int32Array 符号付き 32 ビット整数値 Float32Array 32 ビット浮動小数点数値 ▶ バッファ関数 表B-4 には、バッファオブジェクトの作成、削除、データの設定に関係のある関数をまとめ てある。 表B-4 バッファ関数 関数 説明 gl.createBuffer() 新しいWebGLBufferオブジェクトを作って返す。 gl.deleteBuffer( WebGLBufferオブジェクトを削除する。 WebGLBuffer buffer ) gl.bindBuffer( enum target, WebGLBuffer buffer ) B-4 引数のtargetにWebGLBufferをバインドする。 targetと し て 指 定 で き る 有 効 な 値 は、gl.ARRAY_BUFFERと gl.ELEMENT_ARRAY_BUFFERである。 付録B WebGLリファレンス (表B-4 続き) gl.bufferData( enum target, Object data, enum usage ) 引 数 のtargetに バ イ ン ド さ れ たWebGLBufferオ ブ ジ ェ ク ト の デ ー タ を 保 存 す る。 第 2 引 数 は、ArrayBufferオ ブ ジ ェ ク ト、 ArrayBufferViewオ ブ ジ ェ ク ト、 デ ー タ の 初 期 サ イ ズ を 示 す ulong値のどれかを指定できる。 usageと し て 指 定 で き る 有 効 な 値 は、gl.STREAM_DRAW、gl. STATIC_DRAW、gl.DYNAMIC_DRAWである。 gl.bufferData( enum target, uint size, enum usage ) gl.bufferSubData( enum target, Object data, enum usage targetにバインドされたバッファオブジェクトのデータストアの サ ブ セ ク シ ョ ン を 更 新 す る。data 引 数 は、ArrayBuffer、 ArrayBufferViewオブジェクトのどちらかを指定できる。 usage と し て 指 定 で き る 有 効 な 値 は、gl.STREAM_DRAW、 gl.STATIC_DRAW、gl.DYNAMIC_DRAWである。 ) gl.getBufferParameter( enum target, enum pname 引数のtargetにバインドされたバッファオブジェクトのパラメー タの値を返す。nameとして指定できる有効な値は、gl.BUFFER_ SIZE、gl.BUFFER_USAGEである。 ) gl.isBuffer( WebGLBuffer buffer バッファがWebGLObjectで、gl.bindBuffer()ですでにターゲッ トにバインドされているときにtrueを返す。 ) B-5 付録B WebGLリファレンス ▶ シェーダ 表B-5 には、シェーダオブジェクトの作成、削除、コンパイルに関連する関数をまとめてあ る。 表B-5 シェーダ関数 関数 gl.createShader( enum type ) gl.deleteShader( WebGLShader shader 説明 新しいWebGLShaderオブジェクトを返す。 typeと し て 指 定 で き る 有 効 な 値 は、gl.FRAGMENT_SHADERと gl.VERTEX_SHADERである。 引数のWebGLShaderオブジェクトを削除する。削除ステータスは、 gl.DELETE_STATUSパラメータに保存される。 ) gl.shaderSource( WebGLShader shader, 引数のWebGLShaderオブジェクトにGLSLソースコードを設定す る。 string source ) gl.getShaderSource( WebGLShader shader 引数のWebGLShaderオブジェクトのGLSLソースコードをstring として返す。 ) gl.compileShader( WebGLShaderオブジェクトをコンパイルする。 WebGLShader shader ) gl.getShaderInfoLog( WebGLShader shader 引数のWebGLShaderオブジェクトの情報ログ(コンパイルエラーを 含む)をstringとして返す。 ) gl.isShader( WebGLShader shader シェーダがまだ削除されていないWebGLShaderオブジェクトなら trueを返す。そうでなければfaleを返す。 ) gl.getShaderParameter( WebGLShader shader, enum pname ) B-6 引数のWebGLShaderオブジェクトのパラメータ値を返す。pname として指定できる有効な値は、gl.SHADER_TYPE、gl.DELETE_ STATUS、gl.COMPILE_STATUSである。 付録B WebGLリファレンス ▶ プログラムオブジェクト 表B-6 には、プログラムオブジェクトの作成、削除、リンクに関連する関数をまとめてある。 表B-6 プログラムオブジェクト関数 関数 説明 gl.createProgram() 新しいWebGLProgramオブジェクトを作って返す。 gl.deleteProgram( 引数のWebGLProgramオブジェクトを削除する。削除ステータス は、gl.DELETE_STATUSパラメータに保存される。 WebGLProgram program ) gl.linkProgram( WebGLProgram program ) gl.getProgramInfoLog( WebGLProgram program 引数のWebGLProgramオブジェクトをリンクし、プログラマブル 頂点、フラグメントプロセッサの実行可能コードを作る。ステータ スは、gl.LINK_STATUSパラメータに保存される。 引数のWebGLProgramオブジェクトの情報ログ(リンカエラーを 含む)を文字列として返す。 ) gl.validateProgram( WebGLProgram program 引数のWebGLProgramオブジェクトをバリデートし、ステータス をgl.VALIDATE_STATUSパラメータに保存する。 ) gl.attachShader( WebGLProgram program, WebGLShader shader 引数のWebGLProgramオブジェクトにWebGLShaderオブジェクト をアタッチする。アタッチされたシェーダの数は、gl.ATTACHED_ SHADERSパラメータに保存される。 ) gl.detachShader( WebGLProgram program, 引数のWebGLProgramオブジェクトからWebGLShaderオブジェ クトをデタッチする。 WebGLShader shader ) gl.getAttachedShaders( WebGLProgram program 引 数 のWebGLProgramオ ブ ジ ェ ク ト に ア タ ッ チ さ れ て い る WebGLShaderオブジェクトを格納する配列を返す。 ) gl.getActiveAttrib( WebGLProgram program, uint index 引数のWebGLProgramオブジェクトのindexの位置にある頂点属 性についての情報を返す。 戻り値は、size、type、nameプロパティを持つWebGLActiveInfo オブジェクトである。 ) B-7 付録B WebGLリファレンス (表B-6 続き) gl.getActiveUniform( WebGLProgram program, 引 数 のWebGLProgramオ ブ ジ ェ ク ト のindexの 位 置 に あ る Uniform変数についての情報を返す。 uint index 戻り値は、size、type、nameプロパティを持つWebGLActiveInfo オブジェクトである。 gl.useProgram( 現在のレンダリングのために指定されたWebGLProgramオブジェ クトをアクティブにする。 ) WebGLProgram program ) gl.isProgram( WebGLProgram program programがまだ削除されていないWebGLProgramオブジェクト ならtrueを返す。そうでなければfalseを返す。 ) gl.getProgramParameter( WebGLProgram program, enum pname ) 引数のWebGLProgramオブジェクトのパラメータ値を返す。 nameと し て 指 定 で き る 有 効 な 値 は、gl.DELETE_STATUS、 gl.LINK_STATUS、gl.VALIDATE_STATUS、 gl.ATTACHED_SHADERS、gl.ACTIVE_UNIFORMS、 gl.ACTIVE_ATTRIBUTESである。 ▶ Uniform変数 表B-7 には、Uniform変数へのアクセス、値の設定に関連する関数をまとめてある。 表B-7 Uniform変数関数 関数 gl.getUniformLocation( WebGLProgram program, 説明 引数のWebGLProgramオブジェクトの指定された名前 のUniform変数の位置を指すWebGLUniformLocation オブジェクトを返す。 string name ) gl.getUniform( WebGLProgram program, 引 数 のWebGLProgramオ ブ ジ ェ ク ト の 指 定 さ れ た locationにあるUniform変数の値を返す。戻り値の型 は、Uniform変数の型によって決まる。 WebGLUniformLocation location ) gl.uniform[1234][fi]( WebGLUniformLocation location, ... ) B-8 引 数 のWebGLProgramオ ブ ジ ェ ク ト の 指 定 さ れ た locationにあるUniform変数に値を設定する。 例: gl.uniform1i(location, 17); gl.uniform3f(location, 1.5, 2.3, 3.7); 付録B WebGLリファレンス (表B-7 続き) gl.uniform[1234][fi]v( WebGLUniformLocation location, Array value 現 在 のWebGLProgramオ ブ ジ ェ ク ト の 指 定 さ れ た locationにあるUniform変数の値を設定する。 例: gl.uniform3fv(location, new ) Float32Array([ 0.5, -2.0, 5.5, 6.2, 1.0, -2.5 ]); gl.uniformMatrix[234]fv( WebGLUniformLocation location, boolean transpose, Float32Array value ) 現 在 のWebGLProgramオ ブ ジ ェ ク ト の 指 定 さ れ た location に あ るUniform行 列 の 値 を 設 定 す る。 transpose引数には、falseを指定しなければなら ない。必要なら、ロードする前に行列を手作業で転置 する必要がある。 例: gl.uniformMatrix3fv(location, new Float32Array([ 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 ]); ▶ 頂点属性 表B-8 には、頂点属性を有効にしたり、値を設定したりすることに関連する関数をまとめて ある。 表B-8 頂点属性関数 関数 gl.enableVertexAttribArray( 説明 indexの位置の頂点属性を有効にする uint index ) gl.disableVertexAttribArray( indexの位置の頂点属性を無効にする。 uint index ) B-9 付録B WebGLリファレンス (表B-8 続き) gl.getAttribLocation( WebGLProgram program, string name ) 引数のプログラムで指定された名前を持つ頂点属性の位置 を返す。 gl.bindAttribLocation( WebGLProgram program, uint index, string name ) 引数のプログラムの指定されたindexに、nameという名前 の頂点属性をバインドする。 gl.getVertexAttrib( uint index, enum pname ) 指定されたindexの位置の頂点属性についての情報を返す。 pnameが指定するパラメータによって戻り値の型は変わる。 pnameと し て 指 定 で き る 有 効 な 値 は、gl.VERTEX_ ATTRIB_ARRAY_ENABLED 、 gl.VERTEX_ATTRIB_ ARRAY_SIZE、gl.VERTEX_ATTRIB_ARRAY_STRIDE、 gl.VERTEX_ATTRIB_ARRAY_TYPE 、 gl.VERTEX_ ATTRIB_ARRAY_NORMALIZED 、 gl.CURRENT_ VERTEX_ATTRIB 、 gl.VERTEX_ATTRIB_ARRAY_ BUFFER_BINDINGである。 gl.getVertexAttribOffset( uint index, enum pname ) 指定されたindexの位置の頂点属性を指すポインタのアド レスを返す。pnameの値はgl.VERTEX_ATTRIB_ARRAY_ POINTERでなければならない。 gl.vertexAttrib[1234]f( uint index, ... ) gl.vertexAttrib[1234]fv( uint index, Float32Array values ) gl.vertexAttribPointer( uint index, int size, enum type, boolean normalized, int stride, int offset ) 指定されたindexの位置の頂点属性に定数値を設定する。 例: gl.vertexAttrib3f(index, 2.3, 5.4, 1.5); 指定されたindexの位置の頂点属性に定数値を設定する。 例: gl.vertexAttrib3fv(index, [2.3, 5.4, 1.5]); 指定されたindexの頂点属性に、現在バインドされている WebGLBufferを割り当てる。 size引数は、データの要素数を指定する。たとえば、vec3 なら 3 になる。1、2、3、4 のどれかでなければならない。 type引数は、データの型を指定し、BYTE、UNSIGNED_ BYTE、SHORT、UNSIGNED_SHORT、INT、UNSIGNED_ INT、FLOATのどれかでなければならない。 normalized引数は、値を[-1,1]の範囲に正規化すべきか どうかを指定する。 stride引数は、1 つの頂点の先頭から次の頂点の先頭まで のバイト数を指定する。データがタイトにパッキングされ ている場合は、0 を指定してストライドを自動計算させるこ とができる。 offsetは、先頭要素を指定する。 B-10 付録B WebGLリファレンス ▶ 描画 表B-9 には、canvas要素にジオメトリを描画することに関連する関数をまとめてある。 表B-9 描画関数 関数 gl.viewport( int x, int y, 説明 左 上 隅 が(x, y)で サ イ ズ がwidth×heightの 矩 形 を ビ ュ ー ポートに設定する。 ビューポートは、コンテンツがレンダリングされる領域である。 int width, int height ) gl.drawArrays( enum mode, int first, int count ) gl.drawElements( enum mode, int count, enum type, 現在バインドされているバッファの配列データからプリミティブ をレンダリングする。 countは、レンダリングする要素数を指定する。firstは、レン ダリングする最初の要素を指定する。 modeとして指定できる有効な値は、gl.POINTS、gl.LINES、 gl.LINE_LOOP、gl.LINE_STRIP、gl.TRIANGLES、gl. TRIANGLE_STRIP、gl.TRIANGLE_FANである。 現在バインドされているバッファからプリミティブを描画する。 countは、レンダリングする要素数を指定する。offsetは、レ ンダリングする最初の要素を指定する。 modeとして指定できる有効な値については、gl.drawArrays() の項を参照していただきたい。 int offset ) gl.flush() バッファリングされたWebGLコマンドをただちに実行する。 gl.finish() すべてのWebGLコマンドが実行され、終了するまで制御を返さない。 B-11 付録B WebGLリファレンス ▶ テクスチャ 表B-10 には、テクスチャの作成、削除、ロードに関連する関数をまとめてある。 表B-10 テクスチャ関数 関数 説明 gl.createTexture() 新しいWebGLTextureオブジェクトを返す。 gl.deleteTexture( 指定されたWebGLTextureオブジェクトを削除する。 WebGLTexture texture ) gl.bindTexture( enum target, WebGLTexture texture 引数のtargetに指定されたWebGLTextureオブジェクトをバイ ンドする。targetとして指定できる有効な値は、gl.TEXTURE_ 2D、gl.TEXTURE_CUBE_MAPである。 ) gl.activeTexture( enum texture ) gl.generateMipmap( enum target ) gl.texImage2D( enum target, int level, enum internalformat, int width, int height, int border, enum format, enum type, ArrayBufferView pixels ) 指定されたテクスチャユニットをアクティブ化する。textureとし て指定できる有効な値は、n = gl.MAX_COMBINED_TEXTURE_ IMAGE_UNITSとして、gl.TEXTURE0からgl.TEXTUREnまで である。 引数のtargetに現在バインドされているテクスチャのために ミップマップを生成する。targetとして指定できる有効な値は、 gl.TEXTURE_2Dとgl.TEXTURE_CUBE_MAPである。 引数のtargetにバインドされたテクスチャにpixels配列のピク セルデータをロードする。targetとして指定できる有効な値は、 gl.TEXTURE_2D、gl.TEXTURE_CUBE_MAP_POSITIVE_X、 gl.TEXTURE_CUBE_MAP_NEGATIVE_X 、 gl.TEXTURE_ CUBE_MAP_POSITIVE_Y 、 gl.TEXTURE_CUBE_MAP_ NEGATIVE_Y 、 gl.TEXTURE_CUBE_MAP_POSITIVE_Z 、 gl.TEXTURE_CUBE_MAP_NEGATIVE_Zである。 format、internalformatと し て 指 定 で き る 有 効 な 値 は、 gl.ALPHA、gl.RGB、gl.RGBA、gl.LUMINANCE、 gl.LUMINANCE_ALPHAである。 type引数は、pixelsにあるデータの型を示す。typeとして指 定 で き る 有 効 な 値 とtypeに 対 応 す るArrayBufferViewの 型 は、gl.UNSIGNED_BYTE(UInt8Array)、gl.UNSIGNED_ SHORT_4_4_4_4( UInt16Array )、 gl.UNSIGNED_ SHORT_5_5_5_1( UInt16Array )、 gl.UNSIGNED_ SHORT_5_6_5(UInt16Array)である。 borderの値は 0 でなければならない。levelの値は、ミップマッ プレベルを示す。0 はもとのイメージを表す。 B-12 付録B WebGLリファレンス (表B-10 続き) gl.texImage2D( enum target, int level, enum internalformat, enum format, enum type, 引数のtargetにバインドされたテクスチャにpixelsオブジェ クトのピクセルデータをロードする。 pixelsオブジェクトは、img要素、canvas要素、video要素、 2Dキャンバスコンテキストのctx.getImageData()メソッド などで作ったImageDataオブジェクトにすることができる。 ほかの引数については、gl.texImage2D()の項を参照していた だきたい。 Object pixels ) gl.texSubImage2D( enum target, int level, int xoffset, int yoffset, 引数のtargetにバインドされたテクスチャのサブリージョンに ピクセルデータをロードする。 サブリージョンのサイズはwidth×heightである。位置(xoffset, yoffset)は、サブリージョンの左上隅を指定する。 ほかの引数については、gl.texImage2D()の項を参照していた だきたい。 int width, int height, enum format, enum type, ArrayBufferView pixels ) gl.texSubImage2D( enum target, int level, int xoffset, int yoffset, enum format, enum type, Object pixels 引数のtargetにバインドされたテクスチャのサブリージョンに ピクセルデータをロードする。 位置(xoffset, yoffset)は、サブリージョンの左上隅を指定 する。 pixelsオブジェクトは、img要素、canvas要素、video要素、 2Dキャンバスコンテキストのctx.getImageData()メソッド などで作ったImageDataオブジェクトにすることができる。 ほかの引数については、gl.texImage2D()の項を参照していた だきたい。 ) gl.copyTexImage2D( enum target, int level, enum internalformat, 引数のtargetにバインドされたテクスチャにフレームバッファ のイメージデータをコピーする。 ほかの引数については、gl.texImage2D()の項を参照していた だきたい。 int x, int y, int width, int height, int border ) B-13 付録B WebGLリファレンス (表B-10 続き) gl.copyTexSubImage2D( enum target, int level, 引数のtargetにバインドされたテクスチャのサブリージョンに フレームバッファのイメージデータをコピーする。 ほかの引数については、gl.texSubImage2D()の項を参照して いただきたい。 int xoffset, int yoffset, int x, int y, int width, int height ) gl.isTexture( WebGLTexture texture テクスチャがgl.bindTexture()でターゲットにバインドされ たWebGLTextureならtrueを返す。そうでなければfalseを返 す。 ) gl.texParameterf( enum target, enum pname, float param ) gl.texParameteri( enum target, enum pname, int param ) gl.getTexParameter( enum target, enum pname ) B-14 引数のtargetにバインドされているテクスチャのためにテクス チャパラメータを設定する。 targetとして指定できる有効な値は、gl.TEXTURE_2Dとgl. TEXTURE_CUBE_MAPである。 pname が gl.TEXTURE_MIN_FILTER なら、 param は gl.NEAREST 、 gl.LINEAR 、 gl.NEAREST_MIPMAP_ NEAREST、gl.LINEAR_MIPMAP_NEAREST、gl.NEAREST_ MIPMAP_LINEAR、gl.LINEAR_MIPMAP_LINEARの どれかで なければならない。 pname が gl.TEXTURE_MIN_FILTERなら、param は gl.NEAREST かgl.LINEARでなければならない。 pnameがgl.TEXTURE_WRAP_Sかgl.TEXTURE_WRAP_Tな ら、 paramはgl.REPEAT、gl.CLAMP_TO_EDGE、gl.MIRRORED_ REPEATのどれかでなければならない。 targetにバインドされているテクスチャのテクスチャパラメー タを返す。 pnameとして指定できる有効な値については、gl.texParameter [fi]()の項を参照。 付録B WebGLリファレンス ▶ ブレンド 表B-11 には、ブレンド式、関数に関連する関数をまとめてある。 表B-11 ブレンド関数 関数 gl.blendEquation( enum mode ) gl.blendEquationSeparate( enum modeRGB, enum modeAlpha 説明 ブレンド式を設定する。 modeとして指定できる有効な値は、gl.FUNC_ADD、gl.FUNC_ SUBTRACT、gl.FUNC_REVERSE_SUBTRACTである。 RGBとアルファとで別々にブレンド式を設定する。 modeとして指定できる有効な値については、gl.blendEquation() の項を参照。 ) gl.blendFunc( enum sfactor, enum dfactor ) ソース、デスティネーションブレンドファクタを設定する。 sfactor、dfactorとして指定できる有効な値は、gl.ZERO、 gl.ONE、gl.SRC_COLOR、gl.ONE_MINUS_SRC_COLOR、 gl.DST_COLOR、gl.ONE_MINUS_DST_COLOR、gl.SRC_ ALPHA、gl.ONE_MINUS_SRC_ALPHA、gl.DST_ALPHA、 gl.ONE_MINUS_DST_ALPHA 、 gl.CONSTANT_COLOR 、 gl.ONE_MINUS_CONSTANT_COLOR 、 gl.CONSTANT_ ALPHA、gl.ONE_MINUS_CONSTANT_ALPHAである。 sfactorについては、gl.SRC_ALPHA_SATURATEも使える。 定数のアルファと定数の色を同時に使うことはできない。 gl.blendFuncSeparate( enum srcRGB, enum dstRGB, RGBとアルファとで別々にブレンドファクタを設定する。 ソース、デスティネーションファクタとして指定できる有効な値 については、gl.blendFunc()の項を参照。 enum srcAlpha, enum dstAlpha ) gl.blendColor( 定数のブレンド色を設定する。 float red, float green, float blue, float alpha ) B-15 付録B WebGLリファレンス ▶ ステンシルバッファ 表B-12 には、ステンシルバッファの関数、演算の設定に関連する関数をまとめてある。 表B-12 ステンシルバッファ関数 関数 gl.clearStencil( int s 説明 ステンシルバッファをクリアするときに使われるステンシルイン デックスを設定する。 ) gl.stencilFunc( enum func, int ref, int mask ステンシルテストに使われる関数と参照値を設定する。 関数として指定できる有効な値は、gl.NEVER、gl.LESS、gl. EQUAL 、gl.LEQUAL 、gl.GREATER 、gl.NOTEQUAL 、gl. GEQUAL、gl.ALWAYSである。 ) gl.stencilFuncSeparate( enum face, enum func, int ref, 前面に出ているポリゴンと背後に隠れているポリゴンとで別々にス テンシル関数と参照値を設定する。 faceと し て 指 定 で き る 有 効 な 値 は、gl.FRONT、gl.BACK、 gl.FRONT_AND_BACKである。 int mask ) gl.stencilMask( uint mask ステンシルバッファへの個々のビットの出力を制御するマスクを設 定する。 ) gl.stencilMaskSeparate( enum face, uint mask 前面に出ているポリゴンと背後に隠れているポリゴンとで別々にス テンシルマスクを設定する。 faceとして指定できる有効な値については、gl.stencilFuncSeparate() の項を参照。 ) gl.stencilOp( enum fail, enum zfail, enum zpass ) B-16 ステンシルテストで使われる演算を設定する。 failはステンシルテストが不合格になったときに使われる演算で ある。zfailは、ステンシルテストが合格になったものの深度テ ストが不合格になったときに使われる演算である。zpassは、両 テストが合格になったときに使われる演算である。 すべての引数について、指定できる有効な値は、gl.ZERO、gl. KEEP 、 gl.REPLACE 、 gl.INCR 、 gl.DECR 、 gl.INVERT 、 gl.INCR_WRAP、gl.DECR_WRAPである。 付録B WebGLリファレンス (表B-12 続き) gl.stencilOpSeparate( enum face, 前面に出ているポリゴンと背後に隠れているポリゴンとで別々にス テンシルテスト演算を設定する。 演算として指定できる有効な値については、See gl.stencilOp() の項を参照。 enum fail, enum zfail, enum zpass ) ▶ 深度バッファ 表B-13 には、深度バッファの値の設定に関連した関数をまとめてある。 表B-13 深度バッファ関数 関数 gl.depthFunc( enum func ) 説明 深度バッファ関数を設定する。 funcとして指定できる有効な値は、gl.NEVER, gl.LESS, gl.EQUAL, gl.LEQUAL, gl.GREATER, gl.NOTEQUAL, gl.GEQUAL, and gl.ALWAYS である。 gl.depthMask( 深度バッファへの書き込みを有効/無効にする。 boolean flag ) gl.depthRange( float zNear, 深度バッファの範囲を設定する。 zNearの値は、zFarよりも小さくなければならない。 float zFar ) gl.clearDepth( 深度バッファをクリアするために使われる深度の値を設定する。 float depth ) gl.polygonOffset( float factor, 深度を計算するために使われるスケーリングファクタとオフセット単位を設 定する。 float units ) ▶ レンダリングバッファ 表B-14 には、レンダリングバッファの作成、削除、利用に関連する関数をまとめてある。 B-17 付録B WebGLリファレンス 表B-14 レンダリングバッファ関数 関数 説明 gl.createRenderbuffer() 新しいWebGLRenderBufferオブジェクトを返す。 gl.deleteRenderbuffer( 引数のWebGLRenderBufferオブジェクトを削除す る。 WebGLRenderbuffer renderbuffer ) gl.bindRenderbuffer( enum target, WebGLRenderbuffer renderbuffer ) gl.renderbufferStorage( enum target, enum internalformat, int width, int height ) gl.framebufferRenderbuffer( enum target, enum attachment, enum renderbuffertarget, WebGLRenderbuffer renderbuffer ) WebGLRenderbuffer renderbuffer ) gl.getRenderbufferParameter( enum target, enum pname B-18 targetの値は、gl.RENDERBUFFERでなければな らない。 現在バインドされているレンダリングバッファのため にデータストアを初期化する。 width、height引数は、レンダリングバッファのサ イズを指定する。 internalformatとして指定できる有効な値は、gl. RGBA4、gl.RGB565、gl.RGB5_A1、gl.DEPTH_ COMPONENT16、gl.STENCIL_INDEX8である。 targetに現在バインドされているフレームバッファ に指定されたWebGLRenderbufferオブジェクトを アタッチする。 targetの値は、gl.RENDERBUFFERでなければなら ない。 renderbuffertargetの値はgl.RENDERBUFFER でなければならない。 attachmentとして指定できる有効な値は、gl.COLOR_ ATTACHMENT0、gl.DEPTH_ATTACHMENT、 gl.STENCIL_ATTACHMENT、gl.DEPTH_STENCIL_ ATTACHMENTである。 gl.isRenderbuffer( ) 指定されたtargetにWebGLRenderbufferオブジェ クトをバインドする。 renderbufferがgl.bindRenderBuffer()でバ インドされたWebGLRenderBufferオブジェクトな らtrueを返す。そうでなければfalseを返す。 現在バインドされているレンダリングバッファのパラ メータを返す。 pnameとして指定できる有効な値は、 gl.RENDERBUFFER_WIDTH、gl.RENDERBUFFER_ HEIGHT、gl.RENDERBUFFER_INTERNAL_FORMAT、 gl.RENDERBUFFER_RED_SIZE、 gl.RENDERBUFFER_GREEN_SIZE、 gl.RENDERBUFFER_BLUE_SIZE、 gl.RENDERBUFFER_ALPHA_SIZE、 gl.RENDERBUFFER_DEPTH_SIZE、 gl.RENDERBUFFER_STENCIL_SIZEである。 付録B WebGLリファレンス ▶ フレームバッファ 表B-15 には、フレームバッファの作成、削除、利用に関連する関数をまとめてある。 表B-15 フレームバッファ関数 関数 説明 gl.createFramebuffer() 新しいWebGLFramebufferオブジェクトを返す。 gl.deleteFramebuffer( 指定されたWebGLFramebufferオブジェクトを削除す る。 WebGLFramebuffer framebuffer ) gl.bindFramebuffer( enum target, 引数のtargetに指定されたWebGLFramebufferオブ ジェクトをバインドする。targetは、gl.FRAMEBUFFER でなければならない。 WebGLFramebuffer framebuffer ) gl.checkFramebufferStatus( enum target ) 現在バインドされているフレームバッファの状態を返す。 戻り値は、gl.FRAMEBUFFER_COMPLETE、 gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT、 gl.FRAMEBUFFER_INCOMPLETE_MISSING_ ATTACHMENT、gl.FRAMEBUFFER_INCOMPLETE_ DIMENSIONS、gl.FRAMEBUFFER_UNSUPPORTEDの なかのどれかである。 gl.isFramebuffer( WebGLFramebuffer framebuffer framebufferがgl.bindFrameBuffer()で バ イ ン ドされたWebGLFramebufferオブジェクトならtrue を返す。 ) gl.framebufferTexture2D( enum target, enum attachment, enum textarget, WebGLTexture texture, int level ) 現在バインドされているフレームバッファに指定された WebGLTextureオブジェクトをアタッチする。 attachmentと し て 指 定 で き る 有 効 な 値 に つ い て は、 gl.framebufferRenderbuffer()の項を参照。 textargetとして指定できる有効な値は gl.TEXTURE_2D、gl.TEXTURE_CUBE_MAP_ POSITIVE_X、gl.TEXTURE_CUBE_MAP_ NEGATIVE_X、gl.TEXTURE_CUBE_MAP_ POSITIVE_Y、gl.TEXTURE_CUBE_MAP_ NEGATIVE_Y、gl.TEXTURE_CUBE_MAP_ POSITIVE_Z、gl.TEXTURE_CUBE_MAP_ NEGATIVE_Zである。 levelは 0 でなければならない。 B-19 付録B WebGLリファレンス (表B-15 続き) gl.getFramebufferAttachmentParameter( enum target, enum attachment, enum pname 現在バインドされているフレームバッファのアタッチメ ントパラメータを返す。 attachmentとして指定できる有効な値は、gl.COLOR_ ATTACHMENT0 、 gl.DEPTH_ATTACHMENT 、 gl. STENCIL_ATTACHMENTである。 pnameとして指定できる有効な値は、 gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE、 gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME、 gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL、 gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_ MAP_FACEである。 ) gl.colorMask( boolean red, フレームバッファの赤、緑、青、アルファコンポーネント の書き込みを有効/無効にする。 boolean green, boolean blue, boolean alpha ) gl.readPixels( int x, int y, int width, int height, enum format, enum type, フレームバッファからピクセルデータを読み出す。 x、y、width、heightは、読み出す矩形リージョンを 指定する。 format は gl.RGBA で な け れ ば な ら な い。type は gl.UNSIGNED_BYTEでなければならない。 ピクセルデータはpixels配列にロードされる。typeの gl.UNSIGNED_BYTEに合わせて、配列はUInt8Array 型でなければならない。 ArrayBufferView pixels ) gl.pixelStorei( enum pname, any param ) ピクセルストレージモードを設定する。paramのデータ 型は、パラメータによって変わる。 pname が gl.PACK_ALIGNMENT か gl.UNPACK_ ALIGNMENTなら、paramはintでなければならない。 pnameがgl.UNPACK_FLIP_Y_WEBGLかgl.UNPACK_ PREMULTIPLY_ALPHA_WEBGLなら、paramはboolean でなければならない。 pname が gl.UNPACK_COLORSPACE_CONVERSION_ WEBGLなら、paramはgl.BROWSER_DEFAULT_WEBGL かgl.NONEでなければならない。 B-20 付録B WebGLリファレンス ▶ その他の関数 表B-16 には、今までの分類に収まらない関数がまとめられている。 表B-16 その他の関数 関数 gl.enable( enum cap ) 説明 機能を有効にする。 capとして指定できる有効な値は、gl.CULL_FACE、gl.BLEND、 gl.DITHER、gl.STENCIL_TEST、gl.DEPTH_TEST、 gl.SCISSOR_TEST、gl.POLYGON_OFFSET_FILL、 gl.SAMPLE_ALPHA_TO_COVERAGE、gl.SAMPLE_COVERAGE である。 gl.disable( enum cap 機 能 を 無 効 に す る。capと し て 指 定 で き る 値 に つ い て は、 gl.enable()の項を参照。 ) gl.isEnabled( enum cap ) gl.cullFace( enum mode ) gl.frontFace( enum mode ) gl.clear( uint mask ) 指定された機能が有効ならtrueを返す。そうでなければfalse を返す。capとして指定できる値については、gl.enable()の 項を参照。 フェースカリングモードを設定する。 modeと し て 指 定 で き る 有 効 な 値 は、gl.FRONT、gl.BACK、 gl.FRONT_AND_BACKである。 フェースカリングで使われる回転方向を設定する。 modeとして指定できる有効な値は、gl.CW(右回り)とgl.CCW (左回り)である。 カラー、深度、ステンシルバッファをクリアする。 maskは、どのバッファをクリアするかを指定するビットマスク である。 例: gl.clear( gl.DEPTH_BUFFER_BIT || gl.STENCIL_BUFFER_BIT || gl.COLOR_BUFFER_BIT ); gl.clearColor( カラーバッファをクリアするために使う色を設定する。 float red, float green, float blue, float alpha ) B-21 付録B WebGLリファレンス (表B-16 続き) gl.lineWidth( レンダリングされる線の太さを設定する。 float width ) gl.scissor( int x, int y, シザーボックスを設定する。 x、yはシザーボックスの左上隅を指定する。width、height はシザーボックスのサイズを指定する。 int width, int height ) gl.sampleCoverage( float value, マルチサンプルカバレッジパラメータを設定する。 invertは、カバレッジマスクを反転するかどうかを指定する。 boolean invert ) gl.getError() 最後に実行したWebGLコマンドのエラーステータスを示すenum 値を返す。 戻り値は、 gl.INVALID_ENUM 、 gl.INVALID_VALUE 、 gl.INVALID_OPERATION、gl.OUT_OF_MEMORY、 gl.CONTEXT_LOST_WEBGL、gl.INVALID_FRAMEBUFFER_ OPERATIONのどれかになる。 gl.hint( enum target, enum mode 実装のヒントを設定する。 targetは、gl.GENERATE_MIPMAP_HINTでなければならな い。 ) modeとして指定できる有効な値は、gl.DONT_CARE、gl.FASTEST、 gl.NICESTである。 gl.getSupportedExtensions() サポートされているエクステンションを示す文字列配列を返す。 gl.getExtension( nameというエクステンションがサポートされていればオブジェ クトを返す。そうでなければ、nullを返す。 string name ) gl.getContextAttributes() webglコンテキストを作成したときに指定された WebGLContextAttributesを返す。 gl.isContextLost() たとえばモバイルデバイスで電源イベントが発生したなどの理由 でwebglコンテキストが失われ、作り直さなければならない場合 は、trueを返す。 gl.getParameter( pnameと い う 名 前 のWebGLパ ラ メ ー タ の 値 を 返 す。 有 効 な pnameの値は、表B-17 を参照。 enum pname ) B-22 付録B WebGLリファレンス ▶ パラメータ 表B-17 には、gl.getParameter()メソッドでアクセスできるパラメータをまとめてある。 表B-17 パラメータ パラメータ名 説明 gl.ACTIVE_TEXTURE ア ク テ ィ ブ な テ ク ス チ ャ ユ ニ ッ ト を 示 す int 値。 表B-10 の gl.activeTexture()を参照。 gl.ALIASED_LINE_ WIDTH_RANGE エイリアス化された線の太さとしてサポートされている最小値と最大 値の 2 つの要素を持つFloat32Array。 gl.ALIASED_POINT_ SIZE_RANGE エイリアス化された点のサイズとしてサポートされている最小値と最 大値の 2 つの要素を持つFloat32Array。 gl.ALPHA_BITS 現在のカラーバッファのアルファビットプレーンの数。 gl.ARRAY_BUFFER_ BINDING 現 在 gl.ARRAY_BUFFER タ ー ゲ ッ ト に バ イ ン ド さ れ て い る WebGLBufferオブジェクト。表B-4 のgl.bindBuffer()を参照。 gl.BLEND ブレンディングが有効かどうかを示す論理値。表B-16のgl.enable() を参照。 gl.BLEND_COLOR ブレンドカラーの赤、緑、青、アルファコンポーネントの 4 つの要素 を持つFloat32Array。表B-11 のgl.blendColor()を参照。 gl.BLEND_DST_ALPHA デ ス テ ィ ネ ー シ ョ ン ア ル フ ァ ブ レ ン ド 関 数 のenum値。 表B-11 の gl.blendFuncSeparate()を参照。 gl.BLEND_DST_RGB デ ス テ ィ ネ ー シ ョ ンRGBブ レ ン ド 関 数 の enum 値。 表B-11 の gl.blendFuncSeparate()を参照。 gl.BLEND_EQUATION_ ALPHA アルファブレンド式のenum値。表B-11のgl.blendFuncSeparate() を参照。 gl.BLEND_EQUATION_RGB RGBブレンド式のenum値。表B-11 のgl.blendFuncSeparate() を参照。 gl.BLEND_SRC_ALPHA ソースアルファブレンド関数のenum値。表B-11のgl.blendFuncSeparate() を参照。 gl.BLEND_SRC_RGB ソースRGBブレンド関数のenum値。表B-11のgl.blendFuncSeparate() を参照。 gl.BLUE_BITS 現在のカラーバッファの青ビットプレーンの数。 gl.COLOR_CLEAR_VALUE カラーバッファをクリアするために使われる色の赤、緑、青、アルファ コ ン ポ ー ネ ン ト の 4 つ の 要 素 を 持 つFloat32Array。 表B-16 の gl.clearColor()を参照。 B-23 付録B WebGLリファレンス (表B-17 続き) B-24 gl.COLOR_WRITEMASK カラーバッファの赤、緑、青、アルファコンポーネントへの書き込みが 有効かどうかを示す4個の論理値の配列。表B-15のgl.ColorMask() を参照。 gl.COMPRESSED_ TEXTURE_FORMATS WebGLは圧縮されたテクスチャ形式をサポートしないので、常に null。 gl.CULL_FACE フェースカリングが有効になっているかどうかを示す論理値。表B-16 のgl.enable()を参照。 gl.CULL_FACE_MODE 現在のフェースカリングモードを表すenum値。表B-16のgl.cullFace() を参照。 gl.CURRENT_PROGRAM アクティブなWebGLProgramオブジェクト。表B-6のgl.useProgram() を参照。 gl.DEPTH_BITS 現在の深度バッファのビットプレーンの数。 gl.DEPTH_CLEAR_VALUE 深度バッファをクリアするために使われる深度値を示す浮動小数点数。 表B-13 のgl.clearDepth()を参照。 gl.DEPTH_FUNC 深度比較関数のenum値。B-13 のgl.depthFunc()を参照。 gl.DEPTH_RANGE 深度バッファの深度の範囲を示す 2 つの要素を持つFloat32Array。 B-13 のgl.depthRange()を参照。 gl.DEPTH_TEST 深度テストが有効になっているかどうかを示す論理値。表B-16 の gl.enable()を参照。 gl.DEPTH_WRITEMASK 深度バッファへの書き込みが有効になっているかどうかを示す論理値。 表B-13 のgl.depthMask()を参照。 gl.DITHER フラグメントディザが有効になっているかどうかを示す論理値。表 B-16 のgl.enable()を参照。 gl.ELEMENT_ARRAY_ BUFFER_BINDING 現在gl.ELEMENT_ARRAY_BUFFERターゲットにバインドされてい るWebGLBufferオブジェクト。表B-4 のgl.bindBuffer()を参照。 gl.FRAMEBUFFER_ BINDING 現 在 バ イ ン ド さ れ て い るWebGLFramebufferオ ブ ジ ェ ク ト。 表 B-15 のgl.bindFramebuffer()を参照。 gl.FRONT_FACE 三角形ワインディング方向を示すenum値。表B-16 のgl.frontFace() を参照。 gl.GENERATE_MIPMAP_ HINT ミップマップ生成ヒントモードのenum値。表B-16 のgl.hint()を 参照。 gl.GREEN_BITS 現在のカラーバッファの緑ビットプレーンの数。 gl.LINE_WIDTH 現在の線の太さを示すfloat値。表B-16 のgl.lineWidth()を参照。 gl.MAX_COMBINED_ TEXTURE_IMAGE_UNITS 結合された頂点シェーダとフラグメントシェーダでサポートされてい る最大のテクスチャユニット。少なくとも 8 以上になる。 付録B WebGLリファレンス (表B-17 続き) gl.MAX_CUBE_MAP_ TEXTURE_SIZE 最大のキューブマップテクスチャサイズの概算値。少なくとも 16 以上 になる。 gl.MAX_FRAGMENT_ UNIFORM_VECTORS フラグメントシェーダの 4 要素Uniform変数の最大数。少なくとも 16 以上になる。 gl.MAX_RENDERBUFFER_ SIZE レンダリングバッファでサポートされている最大の幅と高さ。少なく とも 1 以上になる。 gl.MAX_TEXTURE_IMAGE_ UNITS フラグメントシェーダでサポートされている最大のテクスチャユニッ ト。少なくとも 8 以上になる。 gl.MAX_TEXTURE_SIZE 最大のテクスチャサイズの概算値。少なくとも 64 以上になる。 gl.MAX_VARYING_ VECTORS 頂点、フラグメントシェーダの 4 要素Varying変数の最大数。少なくと も 8 以上になる。 gl.MAX_VERTEX_ATTRIBS 頂点シェーダの 4 要素頂点属性の最大数。少なくとも 8 以上になる。 gl.MAX_VERTEX_ TEXTURE_IMAGE_UNITS 頂点シェーダでサポートされる最大のテクスチャユニット。0 になる ことがあり得る。 gl.MAX_VERTEX_ UNIFORM_VECTORS 頂点シェーダの 4 要素Uniform変数の最大数。少なくとも 128 以上にな る。 gl.MAX_VIEWPORT_DIMS ビューポートの幅と高さの最大値という2つの要素を持つInt32Array。 gl.NUM_COMPRESSED_ TEXTURE_FORMATS WebGLは圧縮されたテクスチャ形式をサポートしないので、常に null。 gl.PACK_ALIGNMENT メモリにピクセルデータを書き込むときに使われるバイトアラインメ ントを示すint値。表B-15 のgl.pixelStorei()を参照。 gl.POLYGON_OFFSET_ FACTOR ポリゴンオフセットで使われるfloatのスケーリングファクタ。表 B-13 のgl.polygonOffset()を参照。 gl.POLYGON_OFFSET_ FILL ポリゴンオフセットモードがフィルモードで有効になっているかどう かを示す論理値。表B-16 のgl.enable()を参照。 gl.POLYGON_OFFSET_ UNITS 定数の深度オフセットを作るために使われるfloat値。表B-13 の gl.polygonOffset()を参照。 gl.RED_BITS 現在のカラーバッファの赤ビットプレーンの数。 gl.RENDERBUFFER_ BINDING 現在バインドされているWebGLRenderbufferオブジェクト。表 B-14 のgl.bindRenderbuffer()を参照。 gl.RENDERER レンダラの名前の文字列。 gl.SAMPLE_BUFFERS 現在のフレームバッファに与えられたサンプルバッファの数を示す int値。 B-25 付録B WebGLリファレンス (表B-17 続き) B-26 gl.SAMPLE_COVERAGE_ INVERT カ バ レ ッ ジ 値 を 反 転 す べ き か ど う か を 示 す 論 理 値。 表B-16 の gl.sampleCoverage()を参照。 gl.SAMPLE_COVERAGE_ VALUE 現在のカバレッジ値を示すfloat値。表B-16のgl.sampleCoverage() を参照。 gl.SAMPLES 現在のフレームバッファのカバレッジマスクサイズを示すint値。 gl.SCISSOR_BOX 現在のシザーボックスのx、y、width、heightの 4 つの要素を持つ Int32Array。表B-16 のgl.scissor()を参照。 gl.SCISSOR_TEST シザーテストが有効になっているかどうかを示す論理値。表B-16 の gl.enable()を参照。 gl.SHADING_LANGUAGE_ VERSION 実 装 が 使 っ て い る シ ェ ー ダ 言 語 の バ ー ジ ョ ン を 示 す 文 字 列。 例: gl.STENCIL_BACK_FAIL ステンシルテストが不合格になったときに、背後に隠れているポリゴンのた めに使われる演算を示すenum値。表B-12のgl.stencilOpSeparate() を参照。 gl.STENCIL_BACK_FUNC 背後に隠れているポリゴンのために使われる比較関数を示すenum値。 表B-12 のgl.stencilFuncSeparate()を参照。 gl.STENCIL_BACK_PASS_ DEPTH_FAIL ステンシルテストが合格になったものの深度テストが不合格になった ときに、背後に隠れているポリゴンのために使われる演算を示すenum 値。表B-12 のgl.stencilOpSeparate()を参照。 gl.STENCIL_BACK_PASS_ DEPTH_PASS ステンシルテストと深度テストの両方が合格になったときに、背後に 隠れているポリゴンのために使われる演算を示すenum値。表B-12 の gl.stencilOpSeparate()を参照。 gl.STENCIL_BACK_REF 背 後 に 隠 れ て い る ポ リ ゴ ン の た め に 使 わ れ る 参 照 値。 表B-12 の gl.stencilFuncSeparate()を参照。 gl.STENCIL_BACK_ VALUE_MASK 背後に隠れているポリゴンが比較の前に参照値とステンシルバッファをマス クするために使うintのマスク。表B-12のgl.stencilFuncSeparate() を参照。 gl.STENCIL_BACK_ WRITEMASK 背後に隠れているポリゴンのための書き込みを制御するintのマスク。 表B-12 のgl.stencilMaskSeparate()を参照。 gl.STENCIL_BITS ステンシルバッファのビットプレーンの数。 gl.STENCIL_CLEAR_ VALUE ステンシルバッファをクリアするために使われるintのインデックス 値。表B-12 のgl.clearStencil()を参照。 gl.STENCIL_FAIL ステンシルテストが不合格になったときに、前面に出ているポリゴンのた めに使われる演算を示すenum値。表B-12のgl.stencilOpSeparate() を参照。 gl.STENCIL_FUNC 前面に出ているポリゴンのために使われる比較関数を示すenum値。表 B-12 のgl.stencilFuncSeparate()を参照。 WebGL GLSL ES 1.0 付録B WebGLリファレンス (表B-17 続き) gl.STENCIL_PASS_ DEPTH_FAIL ステンシルテストが合格になったものの深度テストが不合格になった ときに、前面に出ているポリゴンのために使われる演算を示すenum値。 表B-12 のgl.stencilOpSeparate()を参照。 gl.STENCIL_PASS_ DEPTH_PASS ステンシルテストと深度テストの両方が合格になったときに、前面に 出ているポリゴンのために使われる演算を示すenum値。表B-12 の gl.stencilOpSeparate()を参照。 gl.STENCIL_REF 前 面 に 出 て い る ポ リ ゴ ン の た め に 使 わ れ る 参 照 値。 表B-12 の gl.stencilFuncSeparate()を参照。 gl.STENCIL_TEST ステンシルテストが有効になっているかどうかを示す論理値。表B-16 のgl.enable()を参照。 gl.STENCIL_VALUE_MASK 前面に出ているポリゴンが比較の前に参照値とステンシルバッファをマスク するために使うintのマスク。表B-12のgl.stencilFuncSeparate() を参照。 gl.STENCIL_WRITEMASK 前面に出ているポリゴンのための書き込みを制御するintのマスク。 表B-12 のgl.stencilMaskSeparate()を参照。 gl.SUBPIXEL_BITS サブピクセルビットの数の概算値。少なくとも 4 以上になる。 gl.TEXTURE_BINDING_2D 現 在 gl.TEXTURE_2D タ ー ゲ ッ ト に バ イ ン ド さ れ て い る Web GLTextureオブジェクト。表B-10 のgl.bindTexture()を参照。 gl.TEXTURE_BINDING_ CUBE_MAP 現 在gl.TEXTURE_CUBE_MAPタ ー ゲ ッ ト に バ イ ン ド さ れ て い る WebGLTextureオ ブ ジ ェ ク ト。 表B-10 のgl.bindTexture()を 参照。 gl.UNPACK_ALIGNMENT メモリからピクセルデータを読み出すときに使われるバイトアライン メントを示すint値。表B-15 のgl.pixelStorei()を参照。 gl.UNPACK_COLORSPACE_ CONVERSION_WEBGL イメージデータをロードするときに使われるカラースペース変換を示 すenum値。初期状態では、gl.BROWSER_DEFAULT_WEBGLになっ ている。表B-15 のgl.pixelStorei()を参照。 gl.UNPACK_FLIP_Y_ WEBGL テクスチャイメージデータが縦軸に沿って反転しているかどうかを示 す論理値。表B-15 のgl.pixelStorei()を参照。 gl.UNPACK_ PREMULTIPLY_ALPHA_ WEBGL イメージデータをロードするときに、アルファチャネルがRGBチャネルに 掛け合わされるかどうかを示す論理値。表B-15 のgl.pixelStorei() を参照。 gl.VENDOR 実装に責任を負う企業名の文字列。 gl.VERSION 実装で使われているWebGLバージョンを示す文字列。例:WebGL 1.0 gl.VIEWPORT 現在のビューポートのx、y、width、heightという 4 つの要素を持 つInt32Array。表B-9 のgl.viewport()を参照。 B-27
© Copyright 2024 Paperzz