OpenGL超级宝典(第7版)之第十章计算着色器

  • 前言
  • 一、使用计算着色器
    • 1.执行计算着色器
    • 2.计算着色器通信

前言

利用GPU的计算能力运算
不同于其他着色器,它可以实现互相同步和共享数据
无固定输入或输出,不与其他任何固定管线工序相接,灵活性高,具有其他工序不具备的功能

一、使用计算着色器

计算着色器必须是单独的程序,不能组合其他着色器(顶点、曲面细分、几何、片段)

1.执行计算着色器

简述:计算着色器在工作组中执行,有且只有一个全局工作组发送到opengl执行,全局工作组下有多个局部工作组,每个局部工作组都有自己的工作项(3D区块),每个工作项可以在计算着色器的布局限定符设置
glDispatchCompute()和glDispatchComputeIndirect():设置局部工作组的个数
glGetIntegeri_v():获取局部工作组的工作状态,例如:全局工作组的最大尺寸(局部工作组的数量),一个局部工作组的容积
glGetIntegeriv():获取一个局部工作组的容积

计算着色器的输入与输出:
简述:无内置输出,是一个单工序管线,内置变量可以确定局部工作组和工作项的位置(索引)
gl_WorkGroupID:局部工作组在全局工作组的索引,例如:gl_WorkGroupID.x、gl_WorkGroupID.y、gl_WorkGroupID.z
gl_LocalInvocationID:工作项在局部工作组的索引,例如:gl_LocalInvocationID.x、gl_LocalInvocationID.y、gl_LocalInvocationID.z
gl_NumWorkGroups:局部工作组的调用总数
gl_WorkGroupSize:工作项的调用总数
gl_LocalInvocationIndex:将工作项中的3D变量转换成1D索引
可以使用imageStore、atomics当成着色器输出,写入到着色器存储区块,例如:图像倒置

2.计算着色器通信

简述:计算着色器可以通过有限个共享存储限定符声明变量通信,访问速度很快
同步:通过barrier()函数,注意竞争条件和barrier()对竞争条件的影响
示例:并行前缀和、景深的应用

计算着色器群集:
简述:个体的行为仅基于其对周围其他群体成员的感知,成员之间并没有就某项决定产生任何合作关系,例如:鱼群没有领头鱼
示例:集群的纸飞机

OpenGL超级宝典(第7版)之第十章计算着色器相关推荐

  1. 《OpenGL超级宝典第5版》学习笔记(一)—— 第一个OpenGL程序

    // GLTools库包含了一个用于操作矩阵和向量的3D数学库,并依靠GLEW获得OpenGL3.3中用来产生和渲染一些简单3D对象的函数, // 以及对视觉平截头体.相机类和变换矩阵进行管理的函数的 ...

  2. OpenGL超级宝典第7版环境配置

    1.下载源码 地址:http://www.openglsuperbible.com/ 2.运行Cmake,编译glfw库 打开项目后,编译工程(Debug和Release下都编译). 把E:\open ...

  3. OpenGL超级宝典(第7版)笔记4 渲染管线介绍 清单2.3-2.7

    OpenGL超级宝典(第7版)笔记4 渲染管线介绍 清单2.3-2.7 文章目录 OpenGL超级宝典(第7版)笔记4 渲染管线介绍 清单2.3-2.7 1 OpenGL简介 2 OpenGL渲染管线 ...

  4. OpenGL超级宝典(第五版)环境配置

    本文转自:http://blog.csdn.net/sunny_unix/article/details/8056807,感谢作者分享. OpenGL超级宝典(第五版)环境配置 Vs2008+winX ...

  5. OpenGL超级宝典(第五版)环境配置【转】

    OpenGL超级宝典(第五版)环境配置 Vs2008+winXP  后续会整理Ubuntu 12.04LTS下的配置作者:sunny_unix 1.各种库的配置 (1)glew 下载:https:// ...

  6. OpenGL超级宝典(第五版) 环境配置

    特别提醒:有些在word中或者其他中的代码复制到vs中会报错,原因是word中有些隐含的字符,复制到vs中就会报错:重新输一遍就可以解决问题,这里只是提醒下! 可以参阅我前面转载的一篇文章,进行比较然 ...

  7. OpenGL超级宝典(第五版) 环境配置(WinXp+VS2008)

    转自:http://blog.csdn.net/sunny_unix/article/details/8056807 OpenGL超级宝典(第五版)环境配置 1.各种库的配置 (1)glew 下载:h ...

  8. [转]OpenGL超级宝典 5e 环境配置

    OpenGL超级宝典(第五版)环境配置 1.各种库的配置 (1)glew 下载:https://sourceforge.net/projects/glew/files/glew/1.7.0/glew- ...

  9. OpenGL超级宝典学习笔记——操作矩阵

    为了更强大的功能和灵活性,我们有时需要直接操作矩阵.在OpenGL中4x4的矩阵用包含16个浮点数值的一维数组来表示,而不是用二维的4x4的数组来表示.OpenGL之所以这么做,因为使用一维数组更高效 ...

  10. win7 上配置openGL开发环境(配套openGL 超级宝典Super Bible 6th)

    此教程配套openGL 超级宝典super Bible圣经 第六版基于最新openGL4.3,但只有英语版 第六版比第五版(第五版目前有中文版基于openGL3.2)跨了一个时代,改变非常巨大,所以笔 ...

最新文章

  1. c纳秒级计时器_C++11 计时器!真香
  2. ubuntu mysql配置教程视频_ubuntu16.04安装配置mysql数据库,分割视频为帧图像
  3. Merge、Rebase
  4. CentOS下ZooKeeper单机模式、集群模式安装
  5. 万能无线鼠标对码软件_400元就能买ROG无线游戏鼠标,ROG影刃2无线版使用体验...
  6. opencv中,c和c++版本区别体验
  7. 拓端tecdat|R语言中的生存分析Survival analysis晚期肺癌患者4例
  8. qstringlist格式怎么写到txt_怎样把PDF转成TXT呢?
  9. Python网络爬虫
  10. python3实现json转excel
  11. 网络安全未来发展怎么样?
  12. java代码读取txt文件_java读取txt文件代码片段
  13. 小学计算机期末评价方案,小学班级管理评价方案
  14. 苹果手机桌面找不到计算机,苹果手机在我的电脑显示不出来怎么办
  15. mmdetection - config配置文件之schedule(learning rate)
  16. c/c++中指针学习的两个绝好例子
  17. 详解爬虫模拟登陆的三种方法
  18. matlab, 生成一个数值一样的n维列向量
  19. MQTT协议-报文分析及网络客户端报文测试(MQTT报文连接阿里云上传数据+订阅数据)
  20. 《分布式服务框架原理与实践》读书笔记2

热门文章

  1. 51单片机十字交通灯程序设计
  2. java实现一个电子书下载系统
  3. ghost还原固态硬盘_固态硬盘到底能不能使用Ghost软件?终于说明白了
  4. Java高手速成│编写你第一个数据库程序
  5. 顶级程序员收藏的数学书
  6. 标签打印软件如何连接标签打印机
  7. Keli 编译遇到 *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
  8. 普中科技51单片机——keil的介绍和PZ-ISP无法烧录问题
  9. Python大数据处理方案
  10. HTML转义字符最全集合