投稿
  • 动态
  • 文章
  • 视频
  • 音乐
  • 帖子
    • 中文
    • English
  • 注册
  • 查看作者
    • 一键实现影视级的UE4动态模糊

      大家好

      好久不见

      上面动图是我上班的样子一键实现影视级的UE4动态模糊


      这次来讲一下

      动态模糊


      本想在UE4.25出来的时候发文章

      但一直在忙我司游戏

      只能偶尔写点

      拖到了现在


      用过UE4的同学

      尤其影视动画领域的

      都应该注意到

      动态模糊瑕疵很多

      尤其在高速运动的物体上

      就像轮子

      得到的通常是下图右侧的效果

      一键实现影视级的UE4动态模糊

      不仅是轮子

      连物体的交界处

      也存在各种毛刺

      一键实现影视级的UE4动态模糊

      如果是常规做法

      得到的就是下图的效果

      显然是不可用的

      一键实现影视级的UE4动态模糊

      再看看正确的动态模糊

      无论是轮子

      还是车前灯在地面的反光

      还是背景的树木和围栏

      都很接近常规离线渲染器的水平

      正确展示了我的上班姿势

      一键实现影视级的UE4动态模糊



      看完差别

      下面讲讲


      到底怎么做


      非常简单

      就两三步操作

      都在下面的动图里


      先打开MovieRenderQueue

      而非直接在Sequencer点输出

      一键实现影视级的UE4动态模糊

      添加需要渲染的序列

      一键实现影视级的UE4动态模糊

      添加抗锯齿设置

      根据具体需求

      把时域样本数改到较大数值

      关闭TAA抗锯齿

      一键实现影视级的UE4动态模糊

      有需要的话

      还可以修改相机快门设置

      以控制模糊强度

      个人建议把快门时间改为FrameOpen

      一键实现影视级的UE4动态模糊

      最后设置好输出路径

      点击渲染

      等就完事儿

      一键实现影视级的UE4动态模糊


      这是什么原理

      其实也非常非常简单


      相信有些做动画的团队

      在官方做了这个功能之前

      已经自己做了

      毕竟是大幅提升品质的功能


      UE4渲染动画本身就很快

      再花多一点时间

      就能让品质接近产品级动画

      是很划算的


      游戏里的动态模糊瑕疵多

      是因为

      信息不够


      在每一帧渲染里

      根据像素速度

      对图像进行有方向的模糊处理

      一键实现影视级的UE4动态模糊

      由于单帧的速度方向

      不能描述速度的变化

      所以动态模糊只能描述单帧的方向

      是切线的方向

      像轮子等方向时刻变化的物体

      就会显得很怪

      再看个更明显的例子

      一键实现影视级的UE4动态模糊

      看动图

      是不是更明显了

      这个炸裂的效果

      让人难以接受

      一键实现影视级的UE4动态模糊

      再看看正常的效果

      是不是舒服多了

      一键实现影视级的UE4动态模糊

      不仅如此

      单帧的速度数据

      无法描述反射里看到的物体速度

      阴影投射物的速度等


      螺旋桨转得飞快

      但它的影子没有得到正确的模糊

      一键实现影视级的UE4动态模糊

      所以说到底

      这是后处理动态模糊

      自身局限


      UE4.25偷偷引入的新功能

      Movie Render Queue

      就是为了解决这种问题

      为高品质动画输出做准备


      把原有的一帧

      拆成很多小帧

      让相机拍下所有小帧

      最后把所有小帧合在一起

      就像相机一直开着快门

      一键实现影视级的UE4动态模糊

      如果拆分足够多
      就能得到准确平滑的模糊

      一键实现影视级的UE4动态模糊

      它能应对各种复杂运动

      模糊品质直逼离线渲染

      哪怕螺旋桨转得再快

      一键实现影视级的UE4动态模糊

      来看一个更极限的例子

      下面的风车在不转的时候

      几乎完全挡住了背后的内容

      按生活经验看

      转起来应该是能看到背后的

      一键实现影视级的UE4动态模糊

      那就让它转起来

      还真的就看到背后的内容了

      换作以前的做法肯定没戏

      一键实现影视级的UE4动态模糊

      看上面的结果

      是不是都觉得很不错

      是不是很完美


      其实还有一点

      缺点


      细心的同学

      应该会发现

      有些地方略显暗淡

      没错你找对地方了

      一键实现影视级的UE4动态模糊

      如果还是没看出来

      那我加两盏灯

      一键实现影视级的UE4动态模糊

      转起来

      然后就发现

      那两盏灯不亮了

      一键实现影视级的UE4动态模糊

      我用VRay出了一张图做参考

      区别已经非常明显

      一键实现影视级的UE4动态模糊

      再看看动图对比

      之前奇怪的地方

      是不是瞬间就搞明白了

      一键实现影视级的UE4动态模糊

      出现这个问题的原因

      也很简单


      之前说到

      UE把很多帧合成一帧


      一帧里的每一小帧

      都经过Tonemapping处理

      已经不是HDR

      最大亮度被钳制到1

      在加权平均后丧失亮度

      也就理所当然了


      所以解决方法也很清楚了

      只需把Tonemapping改到合成一帧之后

      就能保留每小帧的高动态数据


      相信少量的代码改动即可完成

      或者UE日后某个更新就支持了


      聪明的小伙伴可能马上想到

      这跟VRay的次像素映射很像

      没错

      如果同时使用指数模式和次像素映射

      像素颜色会在累积前先做指数映射

      导致高动态数据丢失

      也就出现和UE4一模一样的问题


      下图就是VRay的渲染结果

      比之前正确的结果差太多了

      一键实现影视级的UE4动态模糊



      有小伙伴可能会问

      除了出动画

      这个方法可以用到实时吗

      不行

      因为会大幅增加性能消耗

      根本跑不动


      但很奇怪

      有些游戏的螺旋桨轮子等

      没有出现上述问题

      下图截自GTAV

      一键实现影视级的UE4动态模糊

      旋转的感觉处理得很不错

      并没有出现奇怪的毛刺

      下图截自Forza Motorsport7

      一键实现影视级的UE4动态模糊

      因为他们用了trick

      通过巧妙的方法

      模拟出动态模糊的感觉

      当旋转速度达到一定

      把纹理换成预先模糊好的贴图

      一键实现影视级的UE4动态模糊

      这样看起来就很像动态模糊

      非常取巧非常有效


      细心的同学应该发现

      上面的直升机螺旋桨

      刀片有模糊

      中间的机械结构却没有

      一键实现影视级的UE4动态模糊

      是的

      复杂几何体

      换贴图方法就不好使了


      为了让个别复杂几何体有正确的模糊

      有些游戏会根据物体运动

      同时渲染多份模型

      比换贴图更贵


      UE官方有专门的案例

      也是trick

      针对的就是这类情况

      下图截自UE4官方文档

      一键实现影视级的UE4动态模糊

      其实多帧合成一张的做法

      在游戏里还算挺常见


      只不过

      没有用在实时

      而是用于拍照模式


      为了保证拍照的品质

      在镜头静止下来时

      逐帧渲染小帧

      一点点合成最终的动态模糊

      在很多赛车游戏里都用到

      这和UE4.25新功能几乎一模一样

      下图截自Forza Motorsport7

      一键实现影视级的UE4动态模糊

      一键实现影视级的UE4动态模糊




      结语


      这次结尾没什么好说的

      那我就贴几张恶搞图吧

      希望大家喜欢

      一键实现影视级的UE4动态模糊

      一键实现影视级的UE4动态模糊

      一键实现影视级的UE4动态模糊

      一键实现影视级的UE4动态模糊

      一键实现影视级的UE4动态模糊

    • 0
    • 0
    • 0
    • 10
    • 请登录之后再进行评论

      登录
      • 大版主
      • 小版主

      暂没有数据

      暂没有数据

    • 发表内容
    • 实时动态
    • 偏好设置
    • 到底部
    • 单栏布局 侧栏位置: