BilateralFilter&MixedResolutionRendering

本文探讨了深度学习在图像处理领域的应用,包括图像增强、图像分割、目标检测、图像生成等方面。通过实例展示了深度学习如何提升图像处理任务的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MixedResolutonRendering, gdc09的一个paper:

http://developer.amd.com/gpu_assets/ShopfMixedResolutionRendering.pdf

里面需要的一个基础知识:bilateral filter(upsampling)

http://research.microsoft.com/pubs/78272/FinalPaper_0185.pdf

http://blog.youkuaiyun.com/bugrunner/article/details/7170471


bilateral filter

http://blog.youkuaiyun.com/bugrunner/article/details/7170471这里解释的比较清楚,理论,细节和图片。

bilateral filter在应用的时候常常是在低精度渲染贴回到高精度buffer时候做的。

像ssao,shadow,particle,indirect lighting都属于低频图像数据(效果)所以在低精度不buffer上渲染也不太看出来,然后贴回就好,这也是有10余载历史的技术(思路)了。

问题是如果直接apply回高精度buffer时候,还是会有少量的地方由于精度不同导致的比较明显的视觉bug,比如常见的particle低精buffer应用到高精buffer上的边缘有白边的问题,这个时候就借助一些其他的信息(depth,normal等)来在这里辅助filter,有些地方很连续,那么其实就是一个线性插值,有些地方从depth中判断不连续,那么在不同的像素上有不同的策略这种。

具体的filter算法也是根据需要自己来调整。


MixedResolutonRendering

particle:最典型的了,对于低精度的particle render,这些地方容易出问题:


处理办法是使用depth+normal的bilateral filter:




PullPushUpSampling:

一个典型使用的地方是标出shadow mask,进而根据是否在半影区来做昂贵计算的情况。

使用一个低精度的,记录shadow depth min/max的buffer来估计shadow半影区,文中写到对shadow depth的min/max有多层,一个金字塔。。。

这种情况下overhead就比较高了。


IndirectLighting:

使用vpl(virtual point light)来实现,由于会涉及到大量的计算,所以也使用低resolution的方式来做。

基本算法:



识别不连续的方法是:

  • 建立一个类似mipmap的depth和normal buffer,但是每一层包含min/max,而不是平均值
  • 如果max-min大于一个阀值,那么就认为是不连续
使用mix resolution render之后,indirect lighting是效率原来的将近3倍,cool。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值