【问题标题】:Which functions go with which targets in OpenGL / WebGL?哪些函数与 OpenGL/WebGL 中的哪些目标相匹配?
【发布时间】:2021-11-01 07:47:53
【问题描述】:

如果我对这个问题的措辞不佳,我深表歉意。

我是否可以在任何地方找到 OpenGL/WebGL 函数 列表以及它们关联的目标?例如,为了调用glDrawElements(),缓冲区必须绑定到GL_ELEMENT_ARRAY_BUFFER 目标。而要调用glBufferData(),缓冲区必须绑定到多个目标之一,包括GL_ARRAY_BUFFERGL_ELEMENT_ARRAY_BUFFERGL_UNIFORM_BUFFER等...

解决这个问题的另一种方法是,是否有目标列表及其启用的功能?

我已经下载了 OpenGL 3.0 ES 文档文件,并且我非常确信我需要的所有信息都包含在其中。但它分布在约 280 个文件中,我知道我会错过很多实例。我一定忽略了一些东西,因为在尝试掌握“目标”的概念时,这似乎是 OpenGL 的一个重要方面。

【问题讨论】:

    标签: opengl-es webgl opengl-es-3.0


    【解决方案1】:

    在等待了一段时间后,我决定使用从递归 grepping 参考手册中获得的信息来提交我自己问题的答案。

    这肯定是部分列表。大概有些错误。如果您发现任何遗漏或错误,请随时编辑和更正。

    如果有人可以提交更好、更准确的答案,我将很乐意接受并表示感谢。

    目标函数:

    Target Functions
    ARRAY_BUFFER bindBuffer, bufferData, bufferSubData, copyBufferSubData, getBufferParameter, vertexAttribPointer
    COPY_READ_BUFFER bindBuffer, bufferData, bufferSubData, copyBufferSubData, getBufferParameter
    COPY_WRITE_BUFFER bindBuffer, bufferData, bufferSubData, copyBufferSubData, getBufferParameter
    ELEMENT_ARRAY_BUFFER bindBuffer, bufferData, bufferSubData, copyBufferSubData, getBufferParameter, drawElements, drawElementsInstanced, drawRangeElements
    PIXEL_PACK_BUFFER bindBuffer, bufferData, bufferSubData, copyBufferSubData, getBufferParameter, readPixels
    PIXEL_UNPACK_BUFFER bindBuffer, bufferData, bufferSubData, copyBufferSubData, getBufferParameter, compressedTexImage2D, compressedTexImage3D, compressedTexSubImage2D, compressedTexSubImage3D, texImage2D, texImage3D, texSubImage2D, texSubImage3D
    TRANSFORM_FEEDBACK_BUFFER bindBuffer, bufferData, bufferSubData, copyBufferSubData, getBufferParameter, bindBufferBase, bindBufferRange
    UNIFORM_BUFFER bindBuffer, bufferData, bufferSubData, copyBufferSubData, getBufferParameter, bindBufferBase, bindBufferRange
    TEXTURE_2D compressedTexImage2D, compressedTexSubImage2D, texImage2D, texSubImage2D, framebufferTexture2D, bindTexture, copyTexImage2D, copyTexSubImage2D, generateMipmap, getTexParameter, texStorage2D
    TEXTURE_3D compressedTexImage3D, compressedTexSubImage3D, texImage3D, texSubImage3D, bindTexture, generateMipmap, getTexParameter, copyTexSubImage3D, texStorage3D
    TEXTURE_2D_ARRAY compressedTexImage3D, compressedTexSubImage3D, texImage3D, texSubImage3D, bindTexture, generateMipmap, getTexParameter, copyTexSubImage3D, texStorage3D
    TEXTURE_CUBE_MAP texImage2D, bindTexture, generateMipmap, getTexParameter, texStorage2D
    GL_FRAMEBUFFER framebufferTexture2D
    READ_FRAMEBUFFER framebufferTexture2D, bindFramebuffer, checkFramebufferStatus, framebufferRenderbuffer, framebufferTextureLayer, invalidateFramebuffer, invalidateSubFramebuffer
    DRAW_FRAMEBUFFER framebufferTexture2D, bindFramebuffer, checkFramebufferStatus, framebufferRenderbuffer, framebufferTextureLayer, invalidateFramebuffer, invalidateSubFramebuffer
    RENDERBUFFER framebufferRenderbuffer, bindRenderbuffer, renderbufferStorage, renderbufferStorageMultisample
    TRANSFORM_FEEDBACK bindTransformFeedback

    按功能定位

    Function Targets
    bindBuffer ARRAY_BUFFER, COPY_READ_BUFFER, COPY_WRITE_BUFFER, ELEMENT_ARRAY_BUFFER, PIXEL_PACK_BUFFER, PIXEL_UNPACK_BUFFER, TRANSFORM_FEEDBACK_BUFFER, UNIFORM_BUFFER
    bindBufferBase TRANSFORM_FEEDBACK_BUFFER, UNIFORM_BUFFER
    bindBufferRange TRANSFORM_FEEDBACK_BUFFER, UNIFORM_BUFFER
    bindFramebuffer READ_FRAMEBUFFER, DRAW_FRAMEBUFFER
    bindRenderbuffer RENDERBUFFER
    bindTexture TEXTURE_2D, TEXTURE_3D, TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP
    bindTransformFeedback TRANSFORM_FEEDBACK
    bufferData ARRAY_BUFFER, COPY_READ_BUFFER, COPY_WRITE_BUFFER, ELEMENT_ARRAY_BUFFER, PIXEL_PACK_BUFFER, PIXEL_UNPACK_BUFFER, TRANSFORM_FEEDBACK_BUFFER, UNIFORM_BUFFER
    bufferSubData ARRAY_BUFFER, COPY_READ_BUFFER, COPY_WRITE_BUFFER, ELEMENT_ARRAY_BUFFER, PIXEL_PACK_BUFFER, PIXEL_UNPACK_BUFFER, TRANSFORM_FEEDBACK_BUFFER, UNIFORM_BUFFER
    checkFramebufferStatus READ_FRAMEBUFFER, DRAW_FRAMEBUFFER
    compressedTexImage2D PIXEL_UNPACK_BUFFER, TEXTURE_2D
    compressedTexImage3D PIXEL_UNPACK_BUFFER, TEXTURE_3D, TEXTURE_2D_ARRAY
    compressedTexSubImage2D PIXEL_UNPACK_BUFFER, TEXTURE_2D
    compressedTexSubImage3D PIXEL_UNPACK_BUFFER, TEXTURE_3D, TEXTURE_2D_ARRAY
    copyBufferSubData ARRAY_BUFFER, COPY_READ_BUFFER, COPY_WRITE_BUFFER, ELEMENT_ARRAY_BUFFER, PIXEL_PACK_BUFFER, PIXEL_UNPACK_BUFFER, TRANSFORM_FEEDBACK_BUFFER, UNIFORM_BUFFER
    copyTexImage2D TEXTURE_2D
    copyTexSubImage2D TEXTURE_2D
    copyTexSubImage3D TEXTURE_3D, TEXTURE_2D_ARRAY
    drawElements ELEMENT_ARRAY_BUFFER
    drawElementsInstanced ELEMENT_ARRAY_BUFFER
    drawRangeElements ELEMENT_ARRAY_BUFFER
    framebufferRenderbuffer READ_FRAMEBUFFER, DRAW_FRAMEBUFFER, RENDERBUFFER
    framebufferTexture2D GL_FRAMEBUFFER, READ_FRAMEBUFFER, DRAW_FRAMEBUFFER, TEXTURE_2D
    framebufferTextureLayer READ_FRAMEBUFFER, DRAW_FRAMEBUFFER
    generateMipmap TEXTURE_2D, TEXTURE_3D, TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP
    getBufferParameter ARRAY_BUFFER, COPY_READ_BUFFER, COPY_WRITE_BUFFER, ELEMENT_ARRAY_BUFFER, PIXEL_PACK_BUFFER, PIXEL_UNPACK_BUFFER, TRANSFORM_FEEDBACK_BUFFER, UNIFORM_BUFFER
    getTexParameter TEXTURE_2D, TEXTURE_3D, TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP
    invalidateFramebuffer READ_FRAMEBUFFER, DRAW_FRAMEBUFFER
    invalidateSubFramebuffer READ_FRAMEBUFFER, DRAW_FRAMEBUFFER
    readPixels PIXEL_PACK_BUFFER
    renderbufferStorage RENDERBUFFER
    renderbufferStorageMultisample RENDERBUFFER
    texImage2D PIXEL_UNPACK_BUFFER, TEXTURE_2D, TEXTURE_CUBE_MAP
    texImage3D PIXEL_UNPACK_BUFFER, TEXTURE_3D, TEXTURE_2D_ARRAY
    texStorage2D TEXTURE_2D, TEXTURE_CUBE_MAP
    texStorage3D TEXTURE_3D, TEXTURE_2D_ARRAY
    texSubImage2D PIXEL_UNPACK_BUFFER, TEXTURE_2D
    texSubImage3D PIXEL_UNPACK_BUFFER, TEXTURE_3D, TEXTURE_2D_ARRAY
    vertexAttribPointer ARRAY_BUFFER

    最后,这些是您调用的所有不需要目标作为参数的函数(即,如果您没有将某个对象绑定到某个目标,则会抛出的函数):

    • vertexAttribPointer
    • 绘制元素
    • drawElementsInstanced
    • drawRangeElements
    • 读取像素

    【讨论】:

      猜你喜欢
      • 2021-03-16
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 2014-03-11
      相关资源
      最近更新 更多