OpenGL超级宝典(第7版)之第十章计算着色器
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版)之第十章计算着色器相关推荐
- 《OpenGL超级宝典第5版》学习笔记(一)—— 第一个OpenGL程序
// GLTools库包含了一个用于操作矩阵和向量的3D数学库,并依靠GLEW获得OpenGL3.3中用来产生和渲染一些简单3D对象的函数, // 以及对视觉平截头体.相机类和变换矩阵进行管理的函数的 ...
- OpenGL超级宝典第7版环境配置
1.下载源码 地址:http://www.openglsuperbible.com/ 2.运行Cmake,编译glfw库 打开项目后,编译工程(Debug和Release下都编译). 把E:\open ...
- 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渲染管线 ...
- OpenGL超级宝典(第五版)环境配置
本文转自:http://blog.csdn.net/sunny_unix/article/details/8056807,感谢作者分享. OpenGL超级宝典(第五版)环境配置 Vs2008+winX ...
- OpenGL超级宝典(第五版)环境配置【转】
OpenGL超级宝典(第五版)环境配置 Vs2008+winXP 后续会整理Ubuntu 12.04LTS下的配置作者:sunny_unix 1.各种库的配置 (1)glew 下载:https:// ...
- OpenGL超级宝典(第五版) 环境配置
特别提醒:有些在word中或者其他中的代码复制到vs中会报错,原因是word中有些隐含的字符,复制到vs中就会报错:重新输一遍就可以解决问题,这里只是提醒下! 可以参阅我前面转载的一篇文章,进行比较然 ...
- OpenGL超级宝典(第五版) 环境配置(WinXp+VS2008)
转自:http://blog.csdn.net/sunny_unix/article/details/8056807 OpenGL超级宝典(第五版)环境配置 1.各种库的配置 (1)glew 下载:h ...
- [转]OpenGL超级宝典 5e 环境配置
OpenGL超级宝典(第五版)环境配置 1.各种库的配置 (1)glew 下载:https://sourceforge.net/projects/glew/files/glew/1.7.0/glew- ...
- OpenGL超级宝典学习笔记——操作矩阵
为了更强大的功能和灵活性,我们有时需要直接操作矩阵.在OpenGL中4x4的矩阵用包含16个浮点数值的一维数组来表示,而不是用二维的4x4的数组来表示.OpenGL之所以这么做,因为使用一维数组更高效 ...
- win7 上配置openGL开发环境(配套openGL 超级宝典Super Bible 6th)
此教程配套openGL 超级宝典super Bible圣经 第六版基于最新openGL4.3,但只有英语版 第六版比第五版(第五版目前有中文版基于openGL3.2)跨了一个时代,改变非常巨大,所以笔 ...
最新文章
- c纳秒级计时器_C++11 计时器!真香
- ubuntu mysql配置教程视频_ubuntu16.04安装配置mysql数据库,分割视频为帧图像
- Merge、Rebase
- CentOS下ZooKeeper单机模式、集群模式安装
- 万能无线鼠标对码软件_400元就能买ROG无线游戏鼠标,ROG影刃2无线版使用体验...
- opencv中,c和c++版本区别体验
- 拓端tecdat|R语言中的生存分析Survival analysis晚期肺癌患者4例
- qstringlist格式怎么写到txt_怎样把PDF转成TXT呢?
- Python网络爬虫
- python3实现json转excel
- 网络安全未来发展怎么样?
- java代码读取txt文件_java读取txt文件代码片段
- 小学计算机期末评价方案,小学班级管理评价方案
- 苹果手机桌面找不到计算机,苹果手机在我的电脑显示不出来怎么办
- mmdetection - config配置文件之schedule(learning rate)
- c/c++中指针学习的两个绝好例子
- 详解爬虫模拟登陆的三种方法
- matlab, 生成一个数值一样的n维列向量
- MQTT协议-报文分析及网络客户端报文测试(MQTT报文连接阿里云上传数据+订阅数据)
- 《分布式服务框架原理与实践》读书笔记2