径向模糊效果

最先在这里看到:http://www.gamerendering.com/2008/12/20/radial-blur-filter/

这效果在鬼泣4中切换场景时见过, 极品飞车12的运动模糊也有这种感觉.

原理:

    确定一个中心点(如0.5, 0.5), 跟当前像素连一条线. 以当前像素为中心, 在线上的附近像素进行采样, 最后取一下平均值.

代码翻译成HLSL:

// This texture should hold the image to blur. 
sampler2D Texture0;  
// some const, tweak for best look 
const float fSampleDist;  
const float fSampleStrength;   
// some sample positions 
float samples[10] =   
{  
   -0.08,  
   -0.05,  
   -0.03,  
   -0.02,  
   -0.01,  
   0.01,  
   0.02,  
   0.03,  
   0.05,  
   0.08  
};  
float4 ps_main( float2 texCoord  : TEXCOORD0 ) : COLOR  
{  
 // 0.5,0.5 is the center of the screen 
 // so substracting uv from it will result in 
 // a vector pointing to the middle of the screen 
   float2 dir = 0.5 - texCoord;  
 // calculate the distance to the center of the screen 
 float dist = length(dir);  
 // normalize the direction (reuse the distance) 
   dir /= dist;  
 // this is the original colour of this pixel 
 // using only this would result in a nonblurred version 
   float4 color = tex2D(Texture0, texCoord);  
   float4 sum = color;  
 // take 10 additional blur samples in the direction towards 
 // the center of the screen 
 for (int i = 0; i < 10; ++i)  
   {  
      sum += tex2D(Texture0, texCoord + dir * samples[i] * fSampleDist);  
   }  
 // we have taken eleven samples 
   sum /= 11.0;  
 // weighten the blur effect with the distance to the 
 // center of the screen ( further out is blurred more) 
 float t = saturate(dist * fSampleStrength);  
 //Blend the original color with the averaged pixels 
 return lerp(color, sum, t);  
}  

两个参数, 动态调整的话可以产生极品飞车12那种速度感(也算是第一人称运动模糊的简单实现吧).

这是RM里的效果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

Pytorch | BERT模型实现,提供转换脚本【横扫NLP】

《谷歌终于开源BERT代码:3 亿参数量,机器之心全面解读》,上周推送的这篇文章,全面解读基于TensorFlow实现的BERT代码。现在,PyTorch用户的...

37410
来自专栏AI科技大本营的专栏

TensorSpace:一套用于构建神经网络3D可视化应用的框架

今天要为大家推荐一套超酷炫的,用于构建神经网络 3D 可视化应用的框架——TensorSpace。

15110
来自专栏深度学习入门与实践

【深度学习系列】PaddlePaddle可视化之VisualDL

  上篇文章我们讲了如何对模型进行可视化,用的keras手动绘图输出CNN训练的中途结果,本篇文章将讲述如何用PaddlePaddle新开源的VisualDL来...

46390
来自专栏SnailTyan

非极大值抑制(Non-Maximum Suppression)

博客:noahsnail.com  |  CSDN  |  简书 |   云+社区

85400
来自专栏Pytorch实践

Tensorflow常见模型及工程化方法

Tensorflow在深度学习模型研究中起到了很大的促进作用,灵活的框架免去了研究人员、开发者大量的自动求导代码工作。本文总结一下常用的模型代码和工程化需要的代...

26740
来自专栏机器之心

资源 | 微软发布可变形卷积网络代码:可用于多种复杂视觉任务

选自Github 机器之心编译 编辑:吴攀 上个月,微软代季峰等研究者发布的一篇论文提出了一种可变形卷积网络,该研究「引入了两种新的模块来提高卷积神经网络(CN...

39260
来自专栏机器学习AI算法工程

解析Tensorflow官方PTB模型的demo

RNN 模型作为一个可以学习时间序列的模型被认为是深度学习中比较重要的一类模型。在Tensorflow的官方教程中,有两个与之相关的模型被实现出来。第一个模型...

42680
来自专栏王嘉的专栏

安全 AI 的智能对抗系统之架构实现篇

在AI的浪潮下,在现有的安全系统的基础上,SNG业务安全中心将机器学习应用到业务安全对抗中,自研建设并搭建了 – 安全AI的智能对抗系统。智能对抗系统现已应用在...

1.1K00
来自专栏大数据智能实战

基于tensorflow 1.0的图像叙事功能测试(model/im2txt)

作为多模态数据处理的经典,图像自动打标签(图像叙事功能)一直是一项非常前沿的技术,涉及到机器视觉,自然语言处理等模块。 幸运的是,谷歌基于tensorflow将...

69060
来自专栏TensorFlow从0到N

TensorFlow从0到1 - 5 - TensorFlow轻松搞定线性回归

上一篇 第一个机器学习问题 其实是一个线性回归问题(Linear Regression),呈现了用数据来训练模型的具体方式。本篇从平行世界返回,利用Tenso...

40780

扫码关注云+社区

领取腾讯云代金券