如何使用GLSL创建高效的Bloom Shader?


12

我已经在网上搜索了与使用GLSL渲染光晕效果相关的资源,但没有发现任何东西。尽管Philip Rideout网站上教程不错,但在我的Nvidia GPU上却表现不佳。

谁能指导我如何解决这个问题,并建立相当有效的布隆效应实现方法?


1
Ardor3d,一个开源的Java 3d引擎,实现了Bloom Bloom Shader。由于它是开源的,因此您可以轻松地进行检查(www.ardor3d.com)。但基本上,它只是复制帧缓冲,低档次的,模糊的,添加剂调合而成..
Pjotterke

1
您拥有哪种GPU?

1
让我们知道您拥有什么GPU /视频卡非常重要。+!@JoshPetrie
Patrick Hughes

我的笔记本电脑上装有Nvidia GeForce GT 230M图形卡
snape 2011年

6
@snape:您正在使用多大的高斯内核,最大的模糊FBO的分辨率是多少?提高性能的最简单方法是使用较小的内核和较小的FBO。(在我的东西中,无论显示分辨率如何,我都会在512x512分辨率FBO中进行模糊处理)
Trevor Powell

Answers:


3

正如Trevor在他的评论中提到的那样,您唯一的选择可能是减小内核的大小或执行进一步的下采样。

但是,您是否已彻底阅读了已链接的教程?关于利用硬件过滤的技巧,作者称之为“偷偷摸摸”的版本。这可能是您可以用来优化光晕效果而不影响其质量的最佳技巧。


是的,我已彻底阅读了本教程。我终于通过使用脱机渲染提高了它的性能,并且我之前没有为图形应用程序启用硬件支持。
snape 2012年

0

我通过两次通过解决了一个非常类似的问题(模糊,但bloom过滤器模糊了)。

在第一遍中,我在X方向上模糊,在第二遍中,我在Y方向上模糊。

我不知道该从何处获得技巧,但是将时间复杂度从n²降低到2n。

这仅适用于没有方向的内核(因此您不能以这种方式优化bokeh内核)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.