基于DX11高斯模糊(Gaussian Blur DX11)

时间:2021-04-13 03:12:05
【文件属性】:

文件名称:基于DX11高斯模糊(Gaussian Blur DX11)

文件大小:26.13MB

文件格式:7Z

更新时间:2021-04-13 03:12:05

高斯模糊 Gaussian Blur DX11

双通道直接卷积在当今的实时图形中是最常用的高斯滤波方法,但是当在大内核上运行时,它会变得很耗时,因为每个像素的成本随内核大小的线性增加而增加。许多应用程序在过滤前对输入图像进行采样,以降低性能。为了解决这一问题,在过去,我们提出了几种过滤宽度独立算法,其中大部分涉及频域转换1、递归计算4或重复集成5,直到最近引入的GPU通用计算才能够方便地在传统的GPU流水线上实现。在这三种技术中,重复集成通常被认为是直观和有效的。 在这个代码示例中,我们演示了如何通过使用计算着色器进行重复集成来执行高斯过滤。该算法基于以下简单事实:在输入数据上反复应用一个框式过滤器(平均过滤器),将快速近似高斯滤波的结果,而盒滤波可以通过扫描操作进行处理,从而使每个像素的成本独立于内核大小。作为传统的双通道卷积方法,我们还采用了一个垂直和水平的传递,在每一段中,每一列或一排像素首先被取到共享内存中,然后反复使用一个方框过滤器,最后将其写入到全局内存中。 在本文的其余部分中,我们将解释算法的细节,然后使用计算着色器和组共享内存来描述实现。


【文件预览】:
GaussianBlur
----Lib()
--------D3DX11Effects.lib(12.67MB)
--------Effects11.pdb(2.51MB)
--------D3DX11EffectsD.lib(7.57MB)
----Common()
--------Effects11()
----.git()
--------hooks()
--------config(217B)
--------description(73B)
--------refs()
--------objects()
--------info()
--------HEAD(23B)
----shader()
--------blur_vs.fx(4KB)
--------GaussianBlur()
----Media()
--------GaussianBlur()
----GaussianBlur()
--------.vs()
--------stdafx.cpp(216B)
--------small.ico(45KB)
--------gaussian_mono_cs.fx(12KB)
--------D3DSkyBox.cpp(8KB)
--------D3DInputs.h(904B)
--------Resource.h(740B)
--------D3DGaussianBlur.cpp(21KB)
--------stdafx.h(1KB)
--------D3DGaussianBlur.h(2KB)
--------skybox11.hlsl(2KB)
--------Common.cpp(7KB)
--------gaussian_vs_ps.fx(5KB)
--------GaussianBlur.sln(1KB)
--------platform.h(1KB)
--------targetver.h(240B)
--------D3DApp.cpp(13KB)
--------D3DInputs.cpp(2KB)
--------GaussianBlur.vcxproj(11KB)
--------gaussian_color_cs.fx(13KB)
--------VertexShader.hlsl(219B)
--------main.cpp(2KB)
--------GaussianBlur.vcxproj.filters(4KB)
--------Common.h(1KB)
--------GaussianBlur.ico(45KB)
--------GaussianBlur.vcxproj.user(165B)
--------D3DApp.h(2KB)
--------GaussianBlur.rc(6KB)
--------platform()
--------ReadMe.txt(2KB)
--------D3DSkyBox.h(2KB)

网友评论