WebGL2RenderingContext
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2021å¹´9æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
* ãã®æ©è½ã®ä¸é¨ã¯ã対å¿ã¬ãã«ãç°ãªãå ´åãããã¾ãã
ã¡ã¢: ãã®æ©è½ã¯ã¦ã§ãã¯ã¼ã«ã¼å ã§å©ç¨å¯è½ã§ãã
WebGL2RenderingContext ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãOpenGL ES 3.0 ã®ã¬ã³ããªã³ã°ã³ã³ããã¹ãã HTML ã® <canvas> è¦ç´ ã®æç»é åã«å¯¾ãã¦æä¾ãã¾ãã
ãã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ãªãã¸ã§ã¯ããåå¾ããã«ã¯ãgetContext() ã <canvas> è¦ç´ ã«å¯¾ãã¦å¼ã³åºãã弿°ã¨ã㦠"webgl2" ãæä¾ãã¦ãã ããã
const canvas = document.getElementById("myCanvas");
const gl = canvas.getContext("webgl2");
ã¡ã¢:
WebGL 2 㯠WebGL 1 ã®æ¡å¼µçã§ããWebGL2RenderingContext ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãWebGLRenderingContext ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ãã¹ã¦ã®ã¡ã³ãã¼ãå®è£
ãã¦ãã¾ããWebGL 1 ã³ã³ããã¹ãã®ã¡ã½ããã®ä¸ã«ã¯ãWebGL 2 ã³ã³ããã¹ãã§ä½¿ç¨ããå ´åã追å ã®å¤ãåãå
¥ãããã¨ãã§ãããã®ãããã¾ãããã®ç¹ã«ã¤ãã¦ã¯ãWebGL 1 ã®ãªãã¡ã¬ã³ã¹ãã¼ã¸ã§æ¢ããã¨ãã§ãã¾ãã
WebGL ãã¥ã¼ããªã¢ã«ã«ã¯ãWebGL ãå§ããããã®è©³ããæ å ±ããµã³ãã«ãããã³ãªã½ã¼ã¹ãæ²è¼ããã¦ãã¾ãã
宿°
WebGL 宿°ãã¼ã¸ãåç §ãã¦ãã ããã
ç¶æ æ å ±
WebGL2RenderingContext.getIndexedParameter()-
æå®ããã
targetã®ã¤ã³ããã¯ã¹ä»ããããå¤ãè¿ãã¾ãã
ãããã¡ã¼
WebGL2RenderingContext.bufferData()-
ãããã¡ã¼ãªãã¸ã§ã¯ãã®ãã¼ã¿ã¹ãã¢ãåæåãã¦ä½æãã¾ãã
WebGL2RenderingContext.bufferSubData()-
ãããã¡ã¼ãªãã¸ã§ã¯ãã®ãã¼ã¿ã¹ãã¢ã®ãµãã»ãããæ´æ°ãã¾ãã
WebGL2RenderingContext.copyBufferSubData()-
ãããããã¡ã¼ã®ãã¼ã¿ã®ä¸é¨ããå¥ã®ãããã¡ã¼ã«ã³ãã¼ãã¾ãã
WebGL2RenderingContext.getBufferSubData()-
ãããã¡ã¼ãããã¼ã¿ãèªã¿åãã
ArrayBufferã¾ãã¯SharedArrayBufferã¸æ¸ãåºãã¾ãã
ãã¬ã¼ã ãããã¡ã¼
WebGL2RenderingContext.blitFramebuffer()-
èªã¿åãç¨ãã¬ã¼ã ãããã¡ã¼ããæç»ç¨ãã¬ã¼ã ãããã¡ã¼ã¸ããã¯ã»ã«ããããã¯ã§è»¢éãã¾ãã
WebGL2RenderingContext.framebufferTextureLayer()-
ãã¯ã¹ãã£ãåä¸ã®å±¤ã§ãã¬ã¼ã ãããã¡ã¼ã«æ·»ä»ãã¾ãã
WebGL2RenderingContext.invalidateFramebuffer()-
ãã¬ã¼ã ãããã¡ã¼å ã«æ·»ä»ãããã³ã³ãã³ããç¡å¹åãã¾ãã
WebGL2RenderingContext.invalidateSubFramebuffer()-
ãã¬ã¼ã ãããã¡ã¼å ã«æ·»ä»ãããã³ã³ãã³ãã®ä¸é¨ãç¡å¹åãã¾ãã
WebGL2RenderingContext.readBuffer()-
è²ãããã¡ã¼ããã¯ã»ã«ã®ã½ã¼ã¹ã¨ãã¦é¸æãã¾ãã
ã¬ã³ãã¼ãããã¡ã¼
WebGL2RenderingContext.getInternalformatParameter()-
å é¨å½¢å¼ã«å¯¾ããå®è£ ä¾åã®å¯¾å¿ç¶æ³ã«é¢ããæ å ±ãè¿ãã¾ãã
WebGL2RenderingContext.renderbufferStorageMultisample()-
ã¬ã³ãã¼ãããã¡ã¼ãªãã¸ã§ã¯ãã®ãã¼ã¿ã¹ãã¢ã使ãã¦åæåãã使ç¨ãããµã³ãã«æ°ãæå®ãããã¨ãã§ããããã«ãã¾ãã
ãã¯ã¹ãã£
WebGL2RenderingContext.texStorage2D()-
äºæ¬¡å ãã¯ã¹ãã£ã®ãã¹ã¦ã®ä¿åã¬ãã«ãæå®ãã¾ãã
WebGL2RenderingContext.texStorage3D()-
䏿¬¡å ãã¯ã¹ãã£ã¾ãã¯äºæ¬¡å é åãã¯ã¹ãã£ã®ãã¹ã¦ã®ã¬ãã«ãæå®ãã¾ãã
WebGL2RenderingContext.texImage3D()-
䏿¬¡å ãã¯ã¹ãã£ç»åãæå®ãã¾ãã
WebGL2RenderingContext.texSubImage3D()-
ç¾å¨ã®ä¸æ¬¡å ãã¯ã¹ãã£ã®ãµãç©å½¢ãæå®ãã¾ãã
WebGL2RenderingContext.copyTexSubImage3D()-
ç¾å¨ã®
WebGLFramebufferãããæ¢åã®ä¸æ¬¡å ãã¯ã¹ãã£ã®ãµãã¤ã¡ã¼ã¸ã«ãã¯ã»ã«ãã³ãã¼ãã¾ãã WebGL2RenderingContext.compressedTexImage3D-
å§ç¸®å½¢å¼ã®ä¸æ¬¡å ãã¯ã¹ãã£ç»åãæå®ãã¾ãã
WebGL2RenderingContext.compressedTexSubImage3D()-
å§ç¸®å½¢å¼ã®ãã¯ã¹ãã£ç»åã«å¯¾ãã¦ã䏿¬¡å ã®é¨åç©å½¢ãæå®ãã¾ãã
ããã°ã©ã ã¨ã·ã§ã¼ãã¼
WebGL2RenderingContext.getFragDataLocation()-
è²æ°å¤ã¨ã¦ã¼ã¶ã¼å®ç¾©ã®å¯å¤åºå夿°ã¨ã®å¯¾å¿é¢ä¿ãè¿ãã¾ãã
ã¦ããã©ã¼ã ã¨å±æ§
WebGL2RenderingContext.uniform[1234][uif][v]()-
ã¦ããã©ã¼ã 夿°ã«å¤ãæå®ããã¡ã½ããã§ãã
WebGL2RenderingContext.uniformMatrix[234]x[234]fv()-
ã¦ããã©ã¼ã 夿°ã«å¯¾ããè¡åå¤ãæå®ããã¡ã½ããã§ãã
WebGL2RenderingContext.vertexAttribI4[u]i[v]()-
æ±ç¨é ç¹å±æ§ã«å¯¾ãã¦æ´æ°å¤ãæå®ããã¡ã½ããã§ãã
WebGL2RenderingContext.vertexAttribIPointer()-
é ç¹å±æ§é åã«ãããæ´æ°ãã¼ã¿ã®æ¸å¼åããã³é ç¹å±æ§ã®é ç½®ãæå®ãã¾ãã
è²ç©ºé
WebGL2RenderingContext.drawingBufferColorSpace-
WebGL æç»ãããã¡ã¼ã®è²ç©ºéãæå®ãã¾ãã
WebGL2RenderingContext.unpackColorSpace-
ãã¯ã¹ãã£ãã¤ã³ãã¼ãããéã«å¤æããè²ç©ºéãæå®ãã¾ãã
æç»ãããã¡ã¼
WebGL2RenderingContext.vertexAttribDivisor()-
gl.drawArraysInstanced()ããã³gl.drawElementsInstanced()ã«ãã£ã¦ããªããã£ãã®è¤æ°ã®ã¤ã³ã¹ã¿ã³ã¹ãã¬ã³ããªã³ã°ããéãæ±ç¨é ç¹å±æ§ã®å¦çé åºã夿´ãã¾ãã WebGL2RenderingContext.drawArraysInstanced()-
é åãã¼ã¿ããããªããã£ããæç»ãã¾ããããã«ãè¦ç´ ã®ç¯å²ã«å¯¾ãã¦è¤æ°ã®ã¤ã³ã¹ã¿ã³ã¹ãå®è¡ãããã¨ãå¯è½ã§ãã
WebGL2RenderingContext.drawElementsInstanced()-
é åãã¼ã¿ããããªããã£ããæç»ãã¾ããããã«ãä¸é£ã®è¦ç´ ã«å¯¾ãã¦è¤æ°ã®ã¤ã³ã¹ã¿ã³ã¹ãå®è¡ãããã¨ãå¯è½ã§ãã
WebGL2RenderingContext.drawRangeElements()-
æå®ãããç¯å²ã®é åãã¼ã¿ããããªããã£ããæç»ãã¾ãã
WebGL2RenderingContext.drawBuffers()-
æç»ãããã«ã©ã¼ãããã¡ã®ãªã¹ããæå®ãã¾ãã
WebGL2RenderingContext.clearBuffer[fiuv]()-
ç¾å¨ãã¤ã³ãããã¦ãããã¬ã¼ã ãããã¡ã¼ãããããã¡ã¼ãã¯ãªã¢ãã¾ãã
åãåãããªãã¸ã§ã¯ã
WebGLQuery ãªãã¸ã§ã¯ãã¨å
±ã«åä½ããã¡ã½ããã§ãã
WebGL2RenderingContext.createQuery()-
æ°ãã
WebGLQueryãªãã¸ã§ã¯ãã使ãã¾ãã WebGL2RenderingContext.deleteQuery()-
æå®ããã
WebGLQueryãªãã¸ã§ã¯ããåé¤ãã¾ãã WebGL2RenderingContext.isQuery()-
æå®ããããªãã¸ã§ã¯ããæå¹ãª
WebGLQueryãªãã¸ã§ã¯ãã§ããå ´åãtrueãè¿ãã¾ãã WebGL2RenderingContext.beginQuery()-
éåæåãåãããéå§ãã¾ãã
WebGL2RenderingContext.endQuery()-
éåæåãåããã®çµäºã示ãã¾ãã
WebGL2RenderingContext.getQuery()-
æå®ãããã¿ã¼ã²ããã®
WebGLQueryãªãã¸ã§ã¯ããè¿ãã¾ãã WebGL2RenderingContext.getQueryParameter()-
åãåããã«é¢ããæ å ±ãè¿ãã¾ãã
ãµã³ãã©ã¼ãªãã¸ã§ã¯ã
WebGL2RenderingContext.createSampler()-
æ°ãã
WebGLSamplerãªãã¸ã§ã¯ãã使ãã¾ãã WebGL2RenderingContext.deleteSampler()-
æå®ããã
WebGLSamplerãªãã¸ã§ã¯ããåé¤ãã¾ãã WebGL2RenderingContext.bindSampler()-
æå®ããã
WebGLSamplerããã¯ã¹ãã£ã¦ãããã«ãã¤ã³ããã¾ãã WebGL2RenderingContext.isSampler()-
æå®ããããªãã¸ã§ã¯ããæå¹ãª
WebGLSamplerãªãã¸ã§ã¯ãã§ããå ´åãtrueãè¿ãã¾ãã WebGL2RenderingContext.samplerParameter[if]()-
ãµã³ãã©ã¼å¼æ°ãè¨å®ãã¾ãã
WebGL2RenderingContext.getSamplerParameter()-
ãµã³ãã©ã¼å¼æ°ã®æ å ±ãè¿ãã¾ãã
åæãªãã¸ã§ã¯ã
WebGL2RenderingContext.fenceSync()-
æ°ãã
WebGLSyncãªãã¸ã§ã¯ããçæããããã GL ã³ãã³ãã¹ããªã¼ã ã«æ¿å ¥ãã¾ãã WebGL2RenderingContext.isSync()-
渡ããããªãã¸ã§ã¯ããæå¹ãª
WebGLSyncãªãã¸ã§ã¯ãã§ããå ´åãtrueãè¿ãã¾ãã WebGL2RenderingContext.deleteSync()-
æå®ããã
WebGLSyncãªãã¸ã§ã¯ããåé¤ãã¾ãã WebGL2RenderingContext.clientWaitSync()-
WebGLSyncãªãã¸ã§ã¯ããã·ã°ãã«ç¶æ ã«ãªãããæå®ãããã¿ã¤ã ã¢ã¦ãæéãçµéããã¾ã§å¾ æ©ãã¾ãã WebGL2RenderingContext.waitSync()-
ç´ã¡ã«è¿ãã¾ãããæå®ããã
WebGLSyncãªãã¸ã§ã¯ãã«ã·ã°ãã«ãéä¿¡ãããã¾ã§ãGL ãµã¼ãã¼ã§å¾ ã¡ã¾ãã WebGL2RenderingContext.getSyncParameter()-
WebGLSyncãªãã¸ã§ã¯ãã®å¼æ°æ å ±ãè¿ãã¾ãã
座æ¨å¤æãã£ã¼ãããã¯
WebGL2RenderingContext.createTransformFeedback()-
WebGLTransformFeedbackãªãã¸ã§ã¯ãã使ãåæåãã¾ãã WebGL2RenderingContext.deleteTransformFeedback()-
æå®ããã
WebGLTransformFeedbackãªãã¸ã§ã¯ããåé¤ãã¾ãã WebGL2RenderingContext.isTransformFeedback()-
渡ããããªãã¸ã§ã¯ããæå¹ãª
WebGLTransformFeedbackãªãã¸ã§ã¯ãã§ããå ´åãtrueãè¿ãã¾ãã WebGL2RenderingContext.bindTransformFeedback()-
渡ããã
WebGLTransformFeedbackãªãã¸ã§ã¯ãããç¾å¨ã® GL ç¶æ ã«ãã¤ã³ããã¾ãã WebGL2RenderingContext.beginTransformFeedback()-
座æ¨å¤æãã£ã¼ãããã¯æä½ãéå§ãã¾ãã
WebGL2RenderingContext.endTransformFeedback()-
座æ¨å¤æãã£ã¼ãããã¯æä½ãçµäºãã¾ãã
WebGL2RenderingContext.transformFeedbackVaryings()-
WebGLTransformFeedbackãããã¡ã¼ã«è¨é²ããå¤ãæå®ãã¾ãã WebGL2RenderingContext.getTransformFeedbackVarying()-
WebGLTransformFeedbackãããã¡ã¼å ã®å¯å¤å¤æ°ã«é¢ããæ å ±ãè¿ãã¾ãã WebGL2RenderingContext.pauseTransformFeedback()-
座æ¨å¤æãã£ã¼ãããã¯æä½ã䏿忢ãã¾ãã
WebGL2RenderingContext.resumeTransformFeedback()-
座æ¨å¤æãã£ã¼ãããã¯æä½ãåéãã¾ãã
ã¦ããã©ã¼ã ãããã¡ã¼ãªãã¸ã§ã¯ã
WebGL2RenderingContext.bindBufferBase()-
æå®ããã
WebGLBufferããæå®ããããã¤ã³ãã£ã³ã°ãã¤ã³ã (target) ã®æå®ãããindexã«ãã¤ã³ããã¾ãã WebGL2RenderingContext.bindBufferRange()-
æå®ããã
WebGLBufferã®ç¯å²ããæå®ããããã¤ã³ãã£ã³ã°ãã¤ã³ã (target) ã®æå®ãããindexã«ãã¤ã³ããã¾ãã WebGL2RenderingContext.getUniformIndices()-
WebGLProgramå ã®è¤æ°ã®ã¦ããã©ã¼ã ã®ã¤ã³ããã¯ã¹ãåå¾ãã¾ãã WebGL2RenderingContext.getActiveUniforms()-
WebGLProgramå ã®ã¢ã¯ãã£ããªã¦ããã©ã¼ã ã«é¢ããæ å ±ãåå¾ãã¾ãã WebGL2RenderingContext.getUniformBlockIndex()-
WebGLProgramå ã®ã¦ããã©ã¼ã ãããã¯ã®ã¤ã³ããã¯ã¹ãåå¾ãã¾ãã WebGL2RenderingContext.getActiveUniformBlockParameter()-
WebGLProgramå ã®ã¢ã¯ãã£ããªã¦ããã©ã¼ã ãããã¯ã«é¢ããæ å ±ãåå¾ãã¾ãã WebGL2RenderingContext.getActiveUniformBlockName()-
WebGLProgramå ã®æå®ãããä½ç½®ã«ãããã¢ã¯ãã£ããªã¦ããã©ã¼ã ãããã¯ã®ååãåå¾ãã¾ãã WebGL2RenderingContext.uniformBlockBinding()-
ã¢ã¯ãã£ããªã¦ããã©ã¼ã ãããã¯ã«ãã¤ã³ãã£ã³ã°ãã¤ã³ããä»£å ¥ãã¾ãã
é ç¹é åãªãã¸ã§ã¯ã
WebGLVertexArrayObject (VAO) ãªãã¸ã§ã¯ãã§å
±ã«åä½ããã¡ã½ããã§ãã
WebGL2RenderingContext.createVertexArray()-
æ°ãã
WebGLVertexArrayObjectã使ãã¾ãã WebGL2RenderingContext.deleteVertexArray()-
æå®ããã
WebGLVertexArrayObjectãåé¤ãã¾ãã WebGL2RenderingContext.isVertexArray()-
渡ããããªãã¸ã§ã¯ããæå¹ãª
WebGLVertexArrayObjectãªãã¸ã§ã¯ãã§ããå ´åãtrueãè¿ãã¾ãã WebGL2RenderingContext.bindVertexArray()-
æå®ããã
WebGLVertexArrayObjectããã®ãããã¡ã¼ã«ãã¤ã³ããã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| WebGL 2.0 Specification > # 4.7 > |