WebGLRenderingContext.drawElements() - Web API 接口参考
文章推薦指數: 80 %
该 WebGLRenderingContext.drawElements() 方法在 WebGL API 从数组数据渲染图元。
语法. void gl .drawElements( mode , count , type , offset ); ...
SkiptomaincontentSkiptosearchSkiptoselectlanguageWeb开发技术WebAPI接口参考WebGLRenderingContextWebGLRenderingContext.drawElements()ArticleActions中文(简体)此页面由社区从英文翻译而来。
了解更多并加入MDNWebDocs社区。
语法例子规范浏览器兼容性相关参考RelatedTopicsWebGLAPIWebGLRenderingContext属性canvasdrawingBufferHeightdrawingBufferWidth方法activeTexture()attachShader()bindAttribLocation()bindBuffer()bindFramebuffer()bindRenderbuffer()bindTexture()blendColor()blendEquation()blendEquationSeparate()blendFunc()blendFuncSeparate()(en-US)bufferData()bufferSubData()(en-US)checkFramebufferStatus()(en-US)clear()clearColor()clearDepth()clearStencil()(en-US)colorMask()(en-US)
Experimental
commit()compileShader()compressedTexImage[23]D()compressedTexSubImage2D()(en-US)copyTexImage2D()(en-US)copyTexSubImage2D()(en-US)createBuffer()createFramebuffer()createProgram()createRenderbuffer()createShader()createTexture()cullFace()deleteBuffer()deleteFramebuffer()deleteProgram()deleteRenderbuffer()deleteShader()deleteTexture()depthFunc()depthMask()depthRange()(en-US)detachShader()disable()disableVertexAttribArray()(en-US)drawArrays()drawElements()enable()enableVertexAttribArray()finish()(en-US)flush()(en-US)framebufferRenderbuffer()(en-US)framebufferTexture2D()(en-US)frontFace()(en-US)generateMipmap()(en-US)getActiveAttrib()(en-US)getActiveUniform()(en-US)getAttachedShaders()(en-US)getAttribLocation()getBufferParameter()(en-US)getContextAttributes()getError()(en-US)getExtension()getFramebufferAttachmentParameter()(en-US)getParameter()getProgramInfoLog()getProgramParameter()getRenderbufferParameter()(en-US)getShaderInfoLog()(en-US)getShaderParameter()getShaderPrecisionFormat()(en-US)getShaderSource()getSupportedExtensions()getTexParameter()getUniform()getUniformLocation()(en-US)getVertexAttrib()(en-US)getVertexAttribOffset()(en-US)hint()(en-US)isBuffer()isContextLost()isEnabled()isFramebuffer()(en-US)isProgram()isRenderbuffer()(en-US)isShader()isTexture()(en-US)lineWidth()(en-US)linkProgram()makeXRCompatible()(en-US)pixelStorei()polygonOffset()readPixels()(en-US)renderbufferStorage()sampleCoverage()(en-US)scissor()shaderSource()stencilFunc()(en-US)stencilFuncSeparate()(en-US)stencilMask()(en-US)stencilMaskSeparate()(en-US)stencilOp()(en-US)stencilOpSeparate()(en-US)texImage2D()texParameter[fi]()texSubImage2D()(en-US)uniform[1234][fi][v]()uniformMatrix[234]fv()useProgram()validateProgram()vertexAttrib[1234]f[v]()vertexAttribPointer()viewport()RelatedpagesforWebGLANGLE_instanced_arraysEXT_blend_minmax(en-US)EXT_color_buffer_half_float(en-US)EXT_disjoint_timer_query(en-US)EXT_frag_depth(en-US)EXT_sRGB(en-US)EXT_shader_texture_lod(en-US)EXT_texture_filter_anisotropic(en-US)OES_element_index_uint(en-US)OES_standard_derivatives(en-US)OES_texture_float(en-US)OES_texture_float_linear(en-US)OES_texture_half_float(en-US)OES_texture_half_float_linear(en-US)OES_vertex_array_objectWEBGL_color_buffer_float(en-US)WEBGL_compressed_texture_etc1(en-US)WEBGL_compressed_texture_pvrtc(en-US)WEBGL_compressed_texture_s3tc(en-US)WEBGL_compressed_texture_s3tc_srgb(en-US)WEBGL_debug_renderer_info(en-US)WEBGL_debug_shaders(en-US)WEBGL_depth_texture(en-US)WEBGL_draw_buffers(en-US)WEBGL_lose_contextWebGL2RenderingContextWebGLActiveInfoWebGLBufferWebGLContextEventWebGLFramebufferWebGLObjectWebGLProgramWebGLQueryWebGLRenderbufferWebGLSamplerWebGLShaderWebGLShaderPrecisionFormatWebGLSyncWebGLTextureWebGLTransformFeedback(en-US)WebGLUniformLocationWebGLVertexArrayObject语法例子规范浏览器兼容性相关参考WebGLRenderingContext.drawElements()
该WebGLRenderingContext.drawElements()方法在WebGLAPI从数组数据渲染图元。
语法voidgl.drawElements(mode,count,type,offset);
参数
mode
枚举类型指定要渲染的图元类型。
可以是以下类型:
gl.POINTS:画单独的点。
gl.LINE_STRIP:画一条直线到下一个顶点。
gl.LINE_LOOP:绘制一条直线到下一个顶点,并将最后一个顶点返回到第一个顶点。
gl.LINES:在一对顶点之间画一条线。
gl.TRIANGLE_STRIP
gl.TRIANGLE_FAN
gl.TRIANGLES:为一组三个顶点绘制一个三角形。
count
整数型指定要渲染的元素数量。
type
枚举类型指定元素数组缓冲区中的值的类型。
可能的值是:
gl.UNSIGNED_BYTE
gl.UNSIGNED_SHORT
当使用OES_element_index_uint(en-US)扩展时:
gl.UNSIGNED_INT
offset
字节单位指定元素数组缓冲区中的偏移量。
必须是给定类型大小的有效倍数。
返回值None.异常
如果mode不是正确值,gl.INVALID_ENUM将会抛出错误异常。
如果offset不是给定类型大小的有效倍数,gl.INVALID_OPERATION将会抛出错误异常。
如果count是负的,gl.INVALID_VALUE将会抛出错误异常。
例子gl.drawElements(gl.POINTS,8,gl.UNSIGNED_BYTE,0);
规范SpecificationWebGLSpecification#5.14.11浏览器兼容性BCDtablesonlyloadinthebrowser相关参考
WebGLRenderingContext.drawArrays()
OES_element_index_uint(en-US)
Foundaproblemwiththispage?EditonGitHubSourceonGitHubReportaproblemwiththiscontentonGitHubWanttofixtheproblemyourself?SeeourContributionguide.Lastmodified:2022年7月20日,byMDNcontributors
延伸文章資訊
- 1WebGL Indexed Vertices
drawElements . There are 2 basic drawing functions in WebGL. gl.drawArrays and gl.drawElements . ...
- 2How gl.drawElements "find" the corresponding vertices array ...
drawElements use one or several ARRAY_BUFFER AND an ELEMENT_ARRAY_BUFFER which contain indices th...
- 3WebGLRenderingContext.drawElements() - Web APIs | MDN
drawElements() method of the WebGL API renders primitives from array data. Syntax. drawElements(m...
- 4WebGLRenderingContext.drawElements - Web APIs
The WebGLRenderingContext.drawElements() method of the WebGL API renders primitives from array data.
- 5WebGL 顶点索引
drawElements 需要一个填充了顶点索引的缓存,然后以此来绘制。 举个例子,我们根据第一篇文章 来绘制一个矩形,但使用 gl.drawElements 。