CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能

这是红宝书里的例子,在这个例子中,下述功能全部登场,因此这个例子可作为使用Compute Shader的典型示例。

用imageLoad从纹理中读取数据。

用imageStore将数据写入纹理。

用vertex/fragment shader显示出compute shader的计算结果。

下面是3个测试用例。

CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能

CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能

CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能

下载

CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入(https://github.com/bitzhuwei/CSharpGL

Image Processing

渲染结果

先解决简单的问题:把compute shader计算后的结果(一个纹理)显示出来。这用到如下的vertex shader和fragment shader,非常简单。

 1 #version 430 core
 2 
 3 in vec3 vert;
 4 in vec2 uv;
 5 out vec2 passUV;
 6 uniform mat4 mvp;
 7 
 8 void main(void)
 9 {
10     gl_Position = mvp * vec4(vert, 1.0f);
11     passUV = uv;
12 }
vertex shader

相关文章:

  • 2021-07-15
  • 2021-09-19
  • 2022-12-23
  • 2022-12-23
  • 2021-08-13
  • 2022-12-23
  • 2022-12-28
猜你喜欢
  • 2021-08-26
  • 2021-08-09
  • 2021-11-12
相关资源
相似解决方案