索引

A      B    C      D     E     F     G

H      I     J      K     L     M     N

O      P    Q      R     S     T

U      V    W      X     Y     Z

B

glBeginConditionalRender 3.0

开始条件渲染

GLuint queryid

GLenu mode: GL_QUERY_WAIT|GL_QUERY_NOWAIT|

GL_QUERY_BY_REGION_WAIT|GL_QUERY_REGION_NOWAIT

根据遮挡查询结果进行绘制,_WAIT会等待查询执行完毕,再根据结果判断;_NOWAIT版本在Query未执行完时会直接绘制

glBeginQuery 2.0

开启遮挡查询

GLenum target:

GL_SAMPLES_PASSED,  通过的采样个数

GL_ANY_SAMPLES_PASSED,  是否存在通过的采样 3.3+

GL_ANY_SAMPLES_PASSED_CONSERVATIVE,  非精确的结果(保守),速度可能快 4.3+

GL_PRIMITIVES_GENERATED, vertex shader或者geometry shader emit顶点数

GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, 查询生成到反馈查询缓冲区中的顶点数

GL_TIME_ELAPSED

GLuint queryid

glEndQuery(GLenum target ):与begin相同

结束查询

可以使用glGetQuery、glGetQueryObject获取查询结果

glBeginQueryIndexed 4.0

4启用索引查询,用于geometryshader

GLenum target

GLuint index 和BeginQuery区别在于使用geometryshader并在在target为GL_PRIMITIVES_GENERATED\ GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN时,可指定对应的stream索引

GLuint queryid

glEndQueryIndexed结束查询

glBeginTransformFeedback

3.0+ 开启反馈查询

GLenum mode: GL_POINTS\GL_LINES\GL_TRIANGLES

用于将vertex或者geometry shader结果输出到通过glBindBufferBase、glBindBufferRange绑定的GL_TRANSFORM_FEEDBACK_BUFFER缓冲区,不是通过glBindBuffer绑定(无索引参数,只能绑定到非数组类型的目标缓冲区:GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or GL_SHADER_STORAGE_BUFFER). P458

记录的顶点程序输出可在程序链接前通过glTransformFeedbackVaryings设置

glBindAttribLocation 2.0

设置顶点属性索引,一般在shader中用layout(location=index) 设置,设置的索引在linkprogram之后生效。

可以将多个名称绑定到同一索引,实现别名

GLuint program,

GLuint index,

const GLchar *name

绑定片段程序输出使用glBindFragDataLocation

glBindBuffer 2.0

关联buffer

GLenum target:

GL_ARRAY_BUFFER   顶点属性,用于glVertexAttribPointer

GL_ELEMENT_ARRAY_BUFFER         顶点索引,用于glDrawElements等索引绘制方法

GL_COPY_READ_BUFFER          Buffer copy source

GL_COPY_WRITE_BUFFER        Buffer copy destination

GL_PIXEL_PACK_BUFFER           用于从纹理或帧缓冲区对象中读取像素数据  glGetCompressedTexImage, glGetTexImage, and glReadPixels.

GL_PIXEL_UNPACK_BUFFER     作为生成纹理数据源,用于glTexImage2D, glTexImage3D, glTexSubImage1D, glTexSubImage2D等

GL_TEXTURE_BUFFER       Texture data buffer

GL_QUERY_BUFFER   用于存储查询结果glGetQuery

GL_DISPATCH_INDIRECT_BUFFER   用于glDispatchComputeIndirect

GL_DRAW_INDIRECT_BUFFER  用于glDrawArraysIndirect and glDrawElementsIndirect

以下四个类型含多个绑定点,需要使用glBindBufferBase 或glBindBufferRange绑定

GL_ATOMIC_COUNTER_BUFFER     Atomic counter storage

GL_SHADER_STORAGE_BUFFER       Read-write storage for shaders

GL_TRANSFORM_FEEDBACK_BUFFER     Transform feedback buffer

GL_UNIFORM_BUFFER

GLuint bufferID

glBindBufferBase

3.0+ 绑定索引的数组类型的缓冲区,也可绑定非索引类型缓冲区

索引缓冲区包括:GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER

, GL_UNIFORM_BUFFER or GL_SHADER_STORAGE_BUFFER

GLenum target,

GLuint index, 相比glBindBuffer增加了此参数,指定对应绑定点索引,

GLuint buffer

glBindBufferRange

3.0+绑定索引的缓冲区中可用数据范围,也可用于绑定非索引类型缓冲区

索引缓冲区包括:GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER

, GL_UNIFORM_BUFFER or GL_SHADER_STORAGE_BUFFER

相比glBindBufferBase增加了offset和size

GLenum   target,

GLuint      index,

GLuint      buffer,

GLintptr   offset,

GLsizeiptr                 size

glBindFramebuffer

关联帧缓冲区

3.0+

GLenum target, :GL_DRAW_FRAMEBUFFER 渲染、GL_READ_FRAMEBUFFER读取、GL_FRAMEBUFFER 渲染和读取

GLuint framebuffer

关联到GL_DRAW_FRAMEBUFFER的Framebuffer的可通过glFramebufferRenderbuffer挂接渲染缓冲区、以及通过glFramebufferTexture2D渲染到纹理。

glBindFragDataLocation 3.0

设置片段程序输出对应的颜色缓冲区索引

GLuint program,

GLuint colorNumber, [0, GL_MAX_DRAW_BUFFERS)

const char * name 变量名称

如果片段程序使用layout (location = colorNumber)指定了索引,则此方法调用无效

不可以将多个变量输出到同一索引

主要用于多渲染目标绘制,参考glDrawBuffers

glBindFragDataLocationIndexed 3.2

同glBindFragDataLocation, 增加了index,分别为0/1表示对应颜色混合等式的第一个或第二个输入项

GLuint program,

GLuint colorNumber,

GLuint index,

const char *name

glBindImageTexture

4.2+ 绑定纹理到image unit用于后续的shader读写

GLuint unit,              绑定到的image unit索引

GLuint texture,

GLint level,               使用的纹理level

GLboolean layered,使用纹理数组或者立方体纹理时,是否按层堆放。true 使用所有, false 仅使用layer指定的层

GLint layer, layerder=false时指定使用的层

GLenum access, GL_READ_ONLY, GL_WRITE_ONLY, or GL_READ_WRITE 指定读写权限

GLenum format 数据输出格式,应与纹理的innerformat同大小并属于同一类。

glBindImageTextures

4.4+ 批量绑定纹理到image unit

GLuint first,     起始iamge unit索引

GLsizei count,

const GLuint *textures

采用layered方式绑定level 0,格式与纹理格式相同

glBindProgramPipeline

4.1+ 绑定管线对象到当前上下文

GLuint pipeline

如果glUseProgram 设置了当前程序,则使用glUseProgram的设置,glUseProgram优先级较高。

glBindRenderbuffer

3.0+ 绑定渲染缓冲区

GLenum target, GL_RENDERBUFFER 仅此一个绑定点,设计多余

GLuint renderbuffer

绑定后可通过glRenderbufferStorage初始化格式和大小,并关联到Framebuffer用于后续渲染

glBindSampler

3.3+ 将采样器关联到纹理单元

GLuint unit

GLuint sampler

采样器设置优先于纹理的单元的纹理状态设置,未设置采样器才会采用纹理状态设置

一个采样器可用于多个纹理单元

glBindSamplers

4.4+ 批量设置多个采样器

GLuint first,     起始纹理单元索引

GLsizei count,

const GLuint *samplers

glBindTexture

2.0+ 绑定纹理

GLenum target: GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY, GL_TEXTURE_BUFFER, GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY

GLuint     texture

纹理默认仅当前渲染上下文可见。

glBindTextures

4.4+ 批量绑定纹理

GLuint first,     起始纹理单元

GLsizei count,

const GLuint *textures

glBindTextureUnit

4.5+ 蒋纹理直接绑定到纹理单元

GLuint unit,

GLuint texture

相当于glActiveTexture +glBindTexture, 可配合glBindSampler

glBindTransformFeedback

4.0+ 绑定变换反馈对象

GLenum target,  GL_TRANSFORM_FEEDBACK

GLuint id

glBindVertexArray

3.0+ 绑定顶点数组对象VAO

GLuint arrayID

glBindVertexBuffer

4.3+ 绑定顶点buffer ,相当于glBindBuffer+glVertexAttribPointer,但简单多了,以前设计太累赘

GLuint bindingindex, 绑定索引

GLuint buffer,

GLintptr offset,

GLintptr stride

4.5+ glVertexArrayVertexBuffer 直接绑定到VAO

glBindVertexBuffers

4.4+ 批量绑定多个顶点buffer

GLuint firstIndex,

GLsizei count,

const GLuint *buffers,

const GLuintptr *offsets,

const GLsizei *strides

glBlendColor

2.0+ 设置混合颜色,用于glBlendFunc:: GL_CONSTANT_COLOR

GLfloat red,

GLfloat green,

GLfloat blue,

GLfloat alpha

glBlendEquation

2.0+ 设置源、目标混合方程式

GLenum mode GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX 加、减、目标-源,最小、最大

glBlendEquationi (          GLuint buf, GLenum mode) 4.0+ 依据索引设置指定drawbuffer

glBlendEquationSeparate

2.0+ 对rgb和alpha设置不同的方程式

GLenum modeRGB,

GLenum modeAlpha

glBlendFunc

2.0+ 设置源和目标混合因子

GLenum src, dst :

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, and GL_ONE_MINUS_CONSTANT_ALPHA

GL_CONSTANT_COLOR : 采用glBlendColor设定的值

GL_SRC_ALPHA_SATURATE :采用srcAlpha和1-dstAlpha中较小的一个

默认源为GL_ONE, 目标为 GL_ZERO。混合默认无效,启用需要使用glEnable(GL_BLEND)

常用的透明为:(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)

glBlendFunc设置所有drawbuffer,设置单个drawbuffer使用glBlendFunci

glBlendFuncSeparate

与glBlendFunc类似,为rgb和alpha设置不同的混合因子

glBlitFramebuffer 3.0

3.0+ 帧缓冲区之间拷贝数据,比如帧缓冲区输出结果拷贝的窗口缓冲区显示

GLint srcX0,

GLint srcY0,

GLint srcX1,

GLint srcY1,

GLint dstX0,

GLint dstY0,

GLint dstX1,

GLint dstY1,

GLbitfield mask 颜色、深度、模板标记

GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT GL_STENCIL_BUFFER_BIT

GLenum filter  过滤方式GL_NEAREST or GL_LINEAR, 深度或模板只能使用GL_NEAREST

将绑定到GL_READ_FRAMEBUFFER的FrameBuffer数据复制到GL_DRAW_FRAMEBUFFER绑定的帧缓冲区。可以为0,即窗口系统缓冲区。

拷贝范围为[srcx0, srcy0]-(srcx1,srcy1),即左下包含,右上不包含

glBlitNamedFramebuffer 4.5+ 根据framebufferID直接复制数据

glBufferData 2.0

初始化Buffer数据

GLenum           target,

GLsizeiptr                 size,   大小

const GLvoid * data, 数据地址,可为NULL,后续可通过glBufferSubData, glMapBuffer

glReadPixels等方式生成数据

GLenum                   usage:    GL_STREAM/STATIC/DYNAMIC_DRAW/READ/COPY

STATIC    一次创建,经常使用

DYMAMIC 多次创建,多次使用

STREAM  一次创建,几次使用

DRAW 写数据到GPU

READ  从GPU中读取数据

COPY  GPU读写数据

glNamedBufferData 4.5+ 直接初始化buffer数据

GLuint buffer,

GLsizei size,

const void *data,

GLenum usage

glBufferStorage 4.4

初始化buffer数据存储,参数与glBufferData仅最后标记不同,相比glBufferData, 标志位多了COHERENT和PERSISTENT以便协调cpu gpu并发

GLenum target,

GLsizeiptr size,

const GLvoid * data,

GLbitfield flags:

GL_DYNAMIC_STORAGE_BIT 数据可通过glBufferSubData动态更新,否则cpu在初始化后不能再更改数据。对于gpu, 不论设不设置都可以通过glCopyBufferSubData and glClearBufferSubData修改其数据

GL_MAP_READ_BIT cpu可以通过map读取其数据

GL_MAP_WRITE_BIT cpu可以通过map更新数据

GL_MAP_PERSISTENT_BIT map期间gpu可以读写buffer(不需要等待)

GL_MAP_COHERENT_BIT 使用glMapBufferRange期间,保持cpu与gpu数据一致。即cpu写对gpu立即可见。Gpu写在调用glFinish或者glFenceSync(GL_SYNC_GPU_ COMMANDS_COMPLETE,0)后对cpu可见。如果不指定此标记,需要先调用glMemoryBarrier,  数据修改才对gpu可见;对于cpu需要调用glMemoryBarrier之后再调用glFenceSync或者glFinish,gpu对数据的修改才可见

GL_CLIENT_STORAGE_BIT 使用客户端内存存储(具体存储位置依据实现)

指定GL_MAP_COHERENT_BIT需要同时指定GL_MAP_PERSISTENT_BIT

glNamedBufferStorage 4.5+ 直接设置buffer数据存储

glBufferSubData

2.0+ 替换部分数据

GLenum target,

GLintptr offset,

GLsizeiptr size,

const GLvoid * data

替换全部数据使用glBufferSubData优于glBufferData,可避免重新分配内存。

可以考虑使用多个buffer,避免在更新时堵塞渲染管线

glNamedBufferSubData 4.5+ 直接更新buffer

Opengl4.5 中文手册—B的更多相关文章

  1. Opengl4.5 中文手册—A

    因为opengl API 比较庞大,网络上还没有完整的.较新的opengl中文手册 这对很多人很不方便,所以整理了这一系列,用于帮助大家"快速浏览最新的opengl api" 为了 ...

  2. Opengl4.5 中文手册—G

    索引 A      B    C      D     E     F     G H      I     J      K     L     M     N O      P    Q      ...

  3. Opengl4.5 中文手册—C

    索引 A      B    C      D     E     F     G H      I    J      K     L     M     N O      P    Q      ...

  4. Opengl4.5 中文手册—D

    索引 A      B    C      D     E     F     G H      I     J      K     L     M     N O      P    Q      ...

  5. Opengl4.5 中文手册—E

    索引 A      B    C      D     E     F     G H      I     J      K     L     M     N O      P    Q      ...

  6. Opengl4.5 中文手册—F

    索引 A      B    C      D     E     F     G H      I     J      K     L     M     N O      P    Q      ...

  7. NVelocity介绍,NVelocity中文手册文档及实例下载

    NVelocity是什么velocity英音:[vi'lɔsiti]美音:[və'lɑsətɪ]近在做一个项目,客户要求有网站模板功能,能够自主编辑网站的风格,因为这个系统是为政府部门做子站系统,举个 ...

  8. (转)Sqoop中文手册

    Sqoop中文手册 1.     概述 本文档主要对SQOOP的使用进行了说明,参考内容主要来自于Cloudera SQOOP的官方文档.为了用中文更清楚明白地描述各参数的使用含义,本文档几乎所有参数 ...

  9. man中文手册配置

    1.ubuntu环境man中文手册配置 1)  终端输入sudo apt-get install manpages-zh 2)  安装后修改配置文件sudo gedit /etc/manpath.co ...

随机推荐

  1. When Startup Disk is Full

    参考自What To Do When Your Mac's Startup Disk is Almost Full Delet——Empty Trash

  2. 第三篇--Jmeter测试数据库Mysql

    Jmeter模拟100用户访问Mysql数据库 1.将Mysql数据库的驱动[mysql-connector-java-5.1.15-bin.jar]放到jmeter的lib目录下,新建线程组100[ ...

  3. python基础教程(五)

    字符串基本操作 所有标准的序列操作(索引.分片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用,前面已经讲述的这些操作.但是,请注意字符串都是不可变的. 字符串的方法: 字符串从str ...

  4. Amazon Aurora解读(SIGMOD 2017)

    Amazon在SIGMOD 2017发表了论文<Amazon Aurora: DesignConsiderations for High Throughput Cloud-Native Rela ...

  5. DispatcherTimer和Timer(计时器)

    System.Windows.Threading.DispatcherTimer dTime;        System.Timers.Timer timer;        public Main ...

  6. 微信H5支付:网络环境未能通过安全验证,请稍后再试。解决办法(PHP版)

    前(tu)言(cao) (这段前言纯属吐槽,着急解决问题的小伙伴,赶紧看正文吧) 最近做了支付宝和微信支付,先做的是PC端网站的支付,就是出个二维码,然后手机扫描支付,当然支付宝在扫码页面支持登录支付 ...

  7. 搭建DNS服务

    author:JevonWei 版权声明:原创作品 修改/var/named/下的数据库文件的数据时,需手动修改serial序列号 UDP协议53端口用于用户DNS查询,TCP协议53端口用于主从DN ...

  8. C# .NET Socket 简单实用框架

    背景: 首先向各位前辈,大哥哥小姐姐问一声好~ 这是我第一次写博客,目前为一个即将步入大四的学生,上学期在一家公司实习了半年,后期发现没有动力,而且由于薪水问题(废话嘛),于是跳槽到这家新的公司. 说 ...

  9. OSX 10.8+下开启Web 共享 的方法

    MENU Home Archives About SUBSCRIBE ☰MENU OSX 10.8+ Mountain Lion 下开启 Web Sharing(Web 共享)的方法 JUL 28, ...

  10. 201521123064 《Java程序设计》第7周学习总结

    1. 本章学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: XMind 2. 书面作业 Q1:ArrayList代码分析 1.1 解释ArrayList的contains源 ...