UE4中多种颜色轮廓线的后期处理

Posted skiwnchiwns

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE4中多种颜色轮廓线的后期处理相关的知识,希望对你有一定的参考价值。


随着近来虚幻引擎4的一些变化,渲染多种颜色的轮廓线已经可以实现了!通过自定义模板,类似自定义深度的缓冲区——但允许网格作为整数值来渲染。它提供了一个0~255范围,可以在网格上定义不同颜色的轮廓线,甚至可以多个功能混用,例如下图使用不同模板索引的描边效果。
技术分享图片 
原始自定义深度

去年制作的原始轮廓线材质是基于在自定义模板可用之前的自定义深度。也就是说,在作为一个单通道深度值绘制到缓冲区后,不能决定网格的类型。原始效果用到的指令很少,所以若你的游戏不需要多种颜色,可以考虑使用旧的特效。

新特效依旧使用自定义深度来决定遮蔽(可选的),通过在后期处理中修改FillAlpha参数来添加一个模糊的覆盖颜色来调整。可以不勾选材质实例中的FillOcclusion选项来关闭该遮蔽。
技术分享图片 
自定义深度视图



开启自定义模板

自定义模板缺省是不开启的,可以依次点击Window> Project Settings > Rendering > Post Process > CustomDepth-stencil Pass ,将其设为Enabled with Stencil来启用自定义模板。
在本例中,一些网格在自定义模板视图中不可见,他们的模板值为0(缺省),不包含在缓冲区中。

技术分享图片 
为了让它们在视图中可见,依次查看Lit > Buffer Visualizer > Custom Stencil
你可以通过渲染目录下网格的编辑菜单,来启用自定义深度或改变模板索引。
技术分享图片 
若你使用C++,为了方便起见,可以在游戏头文件(比如:survivalGame.h)中对它们进行宏定义。


  1. /* Stencil index mapping to PP_OutlineColored */
  2. #define STENCIL_FRIENDLY_OUTLINE 252;
  3. #define STENCIL_NEUTRAL_OUTLINE 253;
  4. #define STENCIL_ENEMY_OUTLINE 254;
  5. #define STENCIL_ITEMHIGHLIGHT 255;
复制代码
在C++中直接启用自定义深度并设置顺序。

  1. GetMesh()->SetRenderCustomDepth(true);
  2. GetMesh()->CustomDepthStencilValue = STENCIL_ENEMY_OUTLINE; // or simply assign an int32 within 1-255 range.
复制代码
设置后期处理

你需要放置一个Post ProcessVolume来启用轮廓线。确保设置为Unbound,这样就可以不管相机是否在体积内。在选中PostProcess Volume状态下,点击Settings > Blendables 并添加PPI_OutlineColored作为第一个入口。

下载
UE4.9版本的轮廓线的后处理。支持(4种)不同颜色的轮廓线(理论上支持255种颜色):

技术分享图片 MultiColoredOutlineFX.zip (145.7 KB, 下载次数: 15, 售价: 3 U币)

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow




















以上是关于UE4中多种颜色轮廓线的后期处理的主要内容,如果未能解决你的问题,请参考以下文章

UE4-后期-Bloom

使用vue学习three.js之渲染后期处理-使用HueSaturationShader定制效果调整颜色的色调和饱和度

使用vue学习three.js之渲染后期处理-使用ColorifyShader定制效果在屏幕上蒙上一层颜色

视觉基础篇17 # 如何使用后期处理通道增强图像效果?

(译)LearnOpenGL实际案例Breakout:后期处理

unity插件Post Process 后期效果 画面特效 颜色替换