2013-11-09 29 views
1

这可能是一个“家庭作业”问题,但我认为我做得足够好,所以我可以在这里得到帮助。OpenCL的景深

在我的作业中,我们有一个可用的OpenGL/OpenCL应用程序。 OpenGL应用程序呈现场景,OpenCL应该应用景深效果。 OpenCL部分获取纹理,每个像素具有原始颜色和深度,并应为给定像素输出颜色。我应该只改变每个像素的功能,这是OpenCL的一部分。

我已经有使用可变尺寸高斯滤波器的工作解决方案,它对计算像素周围进行采样。但即使在我的专用NVidia显卡上,它的分辨率也会有所下降。我试图优化大部分冗余操作,但是我没有获得太多的性能提升。

我也尝试过搜索网页,但是我发现所有算法都与OpenGL或DirectX的图形管道紧密相连,没有什么可以用在我的场景中。

有没有任何算法,可以在我的情况下工作?

+0

什么样的OpenCL应用程序?更具体地说,每像素代码是做什么的? – delnan

+0

@delnan请参阅编辑。我应该填写每像素代码的功能来实现DoF效果。 – Euphoric

+0

您是否已经使用了高斯模糊的可分辨性方面(所以2D-Convolution如同两个1D卷积一样)?如果你这样做了,它仍然会变慢:你是否真的需要一个完美的高斯模糊来完成你的任务,或者质量模糊还可以接受? – Grizzly

回答