计算着色器
来源:互联网 发布:centos 查看软件版本 编辑:程序博客网 时间:2024/04/30 10:23
uint x;
uint y;
uint z;
uint w;
};
layout ( binding = 0 ) buffer bmp{
uvec4 color[];
};
layout(local_size_x = 1) in;
void main(void)
{
uint ID = gl_WorkGroupID.y * gl_NumWorkGroups.x + gl_WorkGroupID.x;
//color[ID] = col(ID * 3,ID * 3 + 1,ID * 3 + 2);
//color[ID] = col(ID * 4,ID * 4 + 1,ID * 4 + 2,ID * 4 + 3);
}
以上计算着色器当color类型为uvec3或者自定义类型col时,无法正确执行,有没有谁知道怎么回事?谢谢!
对应以下C++代码:
#define EC (4)
const unsigned char * bc = (const unsigned char *)bmp;
ShaderStorageBufferObject ssbo( bmp.W() * bmp.H() * EC * sizeof(int), 0, Buffer::USAGE::DYNAMIC_DRAW);
ssbo.Bind(Buffer::BIND_TARGET::COPY_READ_BUFFER);
unsigned int (*bia)[4288][2848][EC] = (unsigned int (*)[4288][2848][EC])ssbo.MapBuffer(Buffer::BIND_TARGET::COPY_READ_BUFFER,Buffer::MAP_FLAG::READ_WRITE);
unsigned int *bi = (unsigned int *)bia;
for(int i = 0; i < bmp.W() * bmp.H() * EC; ++i)
{
//bi[i] = *bc;
bi[i] = i/EC + i%EC;
}
ssbo.UnmapBuffer(Buffer::BIND_TARGET::COPY_READ_BUFFER);
ssbo.UnBind(Buffer::BIND_TARGET::COPY_READ_BUFFER);
ssbo.BindBase(0);
std::string cstr;
ShaderM::ReadShaderSourceFromFile("shaders/computer.glsl/bmp.glsl", cstr);
CMPProg cmpp(cstr.data());
cmpp.UseProgram();
//cmpp.Dispatch(1,1,16);
cmpp.Dispatch(bmp.W() ,bmp.H() ,1);
//glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
glMemoryBarrier(GL_ALL_BARRIER_BITS);
ssbo.Bind(Buffer::BIND_TARGET::COPY_READ_BUFFER);
bia = (unsigned int (*)[4288][2848][EC])ssbo.MapBuffer(Buffer::BIND_TARGET::COPY_READ_BUFFER,Buffer::MAP_FLAG::READ_WRITE);
ssbo.UnmapBuffer(Buffer::BIND_TARGET::COPY_READ_BUFFER);
ssbo.UnBind(Buffer::BIND_TARGET::COPY_READ_BUFFER);
- 计算着色器
- Directx 计算着色器(compute shader)
- OpenGL 中的计算着色器介绍
- DirectCompute & DirectX 11 计算着色器编程简介
- DirectCompute & DirectX 11 计算着色器编程简介
- glsl着色器 光照和纹理计算 (有用!)
- nBodyCS<I>学习笔记之计算着色器
- DirectX11 使用计算着色器实现高斯模糊
- OpenGL4.3新特性: 计算着色器 Compute Shader
- 着色器
- 着色器
- 着色器
- 着色器
- 着色器
- 着色器
- OpenGL ES 同样的灯光计算在顶点着色器和在片元着色器中计算有什么不同
- 着色器:着色器语言&固定功能着色器
- 《OpenGL编程指南(原书第8版)》——计算着色器
- POJ 3026
- 徐海蛟:深度学习与计算机视觉理论与实验2
- POJ 1251
- POJ 1679
- JavaScript closure: compare with Java
- 计算着色器
- 第一天
- Leetcode 177. Nth Highest Salary
- Leetcode 178. Rank Scores
- Spring Boot+JPA+Mysql+ThymeLeaf快速构建CURD系统(一)Spring Boot介绍
- 勾股定理一日一证连载88
- Tracking your manuscript status in journal
- 占位
- 读《About Face 4 交互设计精髓》18