
OpenGL
文章平均质量分 68
eSeeker
这个作者很懒,什么都没留下…
展开
-
OpenGL超级宝典第七版学习笔记-缓冲区(buffers)(2)
2017-3-28缓冲区(buffers)1、对缓冲区赋值的三种方法:一是指定数据仓库时指定默认初始化值,二是使用gl?BufferSubData()系列函数;三是使用glMapNamedBufferData();2、使用以下两个函数进行对缓冲区进行赋值(写入数据)voidglBufferSubData(GLenum target, GLintptr offset, GLsizeipt原创 2017-03-29 05:07:28 · 1569 阅读 · 0 评论 -
OpenGL超级宝典第七版学习笔记-缓冲区-在缓冲区中填充及复制数据(buffers)
2017-3-28缓冲区-在缓冲区中填充及复制数据(buffers)1、 如果你要放入缓冲的数据是不变的值,那么使用glClearBufferSubData()或者glClearNamedBufferSubData()会更有效率。原型如下:voidglClearBufferSubData(GLenum target,GLenuminternalformat,GLintptr of原创 2017-03-29 05:09:53 · 2718 阅读 · 0 评论 -
OpenGL超级宝典第七版学习笔记-uniform(1)
1、 uniform是一种重要的向shader程序传递数据的手段,其将shader和主程序连接起来。2、 uniform根据声明方式的不同分为普通uniform和uniform块。3、 普通uniform声明格式:uniform intmyUniform;4、 Uniform不能再shader中进行赋值,但是可以在声明时赋予默认值5、 Shader变量名是大小写敏感的。6、 在原创 2017-03-29 05:15:50 · 1261 阅读 · 0 评论 -
OpenGL超级宝典第七版学习笔记-uniform-(2)
20170320–uniform-(2)1、 普通uniform在主程序变得复杂的时候会难以维护与使用,所以引入uniform block。Uniform块可以在不同程序之间共享。2、 Uniform块必须存储在buffer中,你可以通过更改绑定的buffer或直接修改buffer中的内容来设置uniform块。即使在更改主程序后,uniform块还可以继续保持与buffer的绑定关系原创 2017-03-29 05:17:05 · 538 阅读 · 0 评论 -
OpenGL超级宝典第七版学习笔记-uniform(3)
20170320–uniform(3)1、 uniform块的共享布局(默认布局):效率更好,但是额外工作较多。2、 每个主程序、每个渲染管线阶段所能用的uniform 块的数量是有限制的,可以使用glGetIntegerv()来查询,至于所查询的目标需要给该函数传递如下参数中的一个:GL_MAX_UNIFORM_BUFFERS //每个程序允许的最大数量GL_MAX_VERTEX原创 2017-03-29 05:18:20 · 832 阅读 · 0 评论 -
OpenGL超级宝典第七版学习笔记-着色器存储块(shader storage block)
20170321-shader storage block1、 shader storage block与uniform block最大的区别是在shader中可以对前者进行写入操作,甚至是对其成员的内存进行原子操作,而后者在shader中是只读的。shader storage block拥有更高的大小上限2、 shader storage block支持std140的布局方式,同时也支持原创 2017-03-29 05:20:24 · 3603 阅读 · 0 评论 -
OpenGL超级宝典第七版学习笔记-缓冲区(buffers)(1)
此系列学习笔记来自OpenGL超级宝典第七版英文版自己翻译而来,此书使用的OpenGL核心的版本是4.5.2017-3-22缓冲区(buffers)1、 缓冲区是线性分配存储的。2、 缓冲区是由名字表示的,OpenGL本质上是使用名字来辨识缓冲区的。3、 在你使用一个缓冲区前,你需要向OpenGL请求一些名字,然后使用这些名字来申请内存,最后向内存中存储数据。这些内存称之为缓原创 2017-03-29 05:05:59 · 1253 阅读 · 0 评论