自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 OpenGL的原子计数器

如果想要在每个原子计数器的原子操作执行后立马将数据写到缓存中,使得程序不会因为着色器的接口调用顺序不确定导致的hazard,那么我们需要用到较前面提到的内存栅栏,在c++源码中我们可以调用glMemoryBarrier再传入参数GL_ATOMIC_COUNTER_BARRIER_BIT即可达到对原子计数器进行同步,也就是每次执行多个原子计数器操作前都会等每个原子计数器操作写入数据到缓存才会执行下一个原子计数器的操作。2、由缓存对象支持,且GLSL中有内置原子函数来加减其内的数值。

2024-06-15 14:17:14 459 2

原创 OpenGL的原子内存操作

比如一个着色器A的调用想对显卡上的一块内存上的值+1再写回到内存上,但是由于另一个着色器B在着色器A获取数据后也去同一块内存中获取数据,然后+1写回内存,这就有个问题,两次调用执行,同一块内存中的结果却只有一次调用的效果,这可能违背了这个程序原本的意愿。这其实就是一种同步手段。8、atomicCompSwap(内存索引,要与内存索引指向的内存上的值比较的值,如果比较值和内存上的值相等,要写入内存的值)5、atomicMin(内存索引,要与内存索引指向的内存上的值比较大小的值,将较小的值写回内存上)

2024-06-12 23:19:42 259

原创 着色器存储块(shader storage bloc)

着色器存储块为啥有这么多的优点,理论上是可以完全替代Uniform block和顶点属性吧,但实际上着色器存储块因为其灵活性导致它不能(很难)被一些OpenGL实现优化其读取效率,比如,当其内的数据是常量时,OpenGL实现很难优化其读取速度,而uniform block却可以被一些OpenGL实现优化其常量数据的读取效率;1、用的限定符不同,uniform block用的是uniform,而着色器存储块用的是buffer限定符,且有更高的最大内存上限。2、着色器可以写入数据到着色器存储块中。

2024-05-18 11:12:12 332

原创 Qt和OpenGL的uniform变量实践

接着生成的图元数据就会被OpenGL自动进行图元装配,比如给所有点进行分组,接着OpenGL继续自动做裁剪处理,去掉视口外的顶点数据,然后再自动进行光栅化将顶点数据转换为像素点(也就是片元化),再到片段着色器中对每个片元的颜色进行处理,片段着色器处理后OpenGL会进行逐片元操作,根据深度测试或模板测试决定一个片元是否可见,最终在屏幕上显示出最终的片元结果。接着,由于OpenGL本质上只是一种规范,我们创建了OpenGL窗口,还需要调用各种OpenGL真正的底层GPU的API才能将我们的数据渲染出来。

2024-05-13 21:30:27 920

原创 C++与OpenGL 共享布局继续随记

1、先获取编译器给uniform block变量分配的索引,将这个索引值和自己指定的一个绑定点用glGetUniformBlockIndex函数进行绑定,再将缓存对象和指定的绑定点绑定,接着,程序运行时,OpenGL就会自动将绑定点上的对应缓存对象中的数据传递到uniform block变量中。

2024-05-11 23:33:33 709

原创 C++ With OpenGL学习随记-uniform block

共享布局是就是由OpenGL自己安排uniform block的位置值,c++程序需要去明确uniform block的各个成员位置值才能从着色器中读取数据,并且需要向OpenGL指定数据的存储位置,让OpenGL去读取数据并且布置数据到uniform block中,共享布局还可以让各个着色器程序共享同个uniform block。使用共享布局的好处是高性能,但是使用起来较为复杂。使用标准布局好处就是易实现,c++程序不需要做较多的工作就可以刷数据到着色器缓存中,但是会损失一些性能。

2024-04-26 10:59:32 210

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除