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币)

原文链接:http://www.tomlooman.com/multi-c
... in-unreal-engine-4/

原文作者:Tom

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

原文地址:https://www.cnblogs.com/skiwnchiwns/p/10344873.html

时间: 2024-10-12 23:04:43

UE4中多种颜色轮廓线的后期处理的相关文章

日志组件系列:(5)让Eclipse/MyEclipse的控制台的log4j日志支持多种颜色

最终实现的效果如下: 1.知识准备 我们要谈到一个概念"ANSI escape sequences",它是什么,究竟有什么作用呢?"ANSI escape sequences"就是嵌入到文本中的"特殊字符",用来控制文本的格式和颜色. ANSI escape sequences are characters embedded in the text used to control formatting, color, and other outp

Android一个TextView设置多种颜色的2种高效方法

有时候一个文本框为了强调内容须要显示不同颜色,用下面代码能够轻松实现 方法一:(适用于颜色变化多的情况) //为文本框设置多种颜色 textView=(TextView)findViewById(R.id.text_show); SpannableStringBuilder style = new SpannableStringBuilder("备注:签收人(张三)"); style.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 3,

TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)

1.    自定义字体 可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体 所以,我们可以在程序中放入TTF字体文件,在程序中使用Typeface来设置字体:第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里.第二步,程序中调用: TextViewtv = (TextView)findViewById(R.id.textView); AssetManagermgr=getAsset

Matplotlib中的颜色

使用matplotlib中会遇到选择颜色的问题,很多人会觉得自带的matlab风格的颜色不好看.好在Matplotlib已经预见到了这个问题,除了支持最基本的matlab传统颜色之外,还支持很多种颜色的表达方式: RGB 或者 RGBA 浮点值元组,[0, 1]之间,例如(0.1, 0.2, 0.5)或者(0.1, 0.2, 0.5, 0.3). RGB 或者 RGBA 十六进制字符串,例如#0F0F0F或者#0F0F0F0F. [0, 1]之间的浮点值的字符串表示,用于表示灰度,例如0.5.

python在linux中输出带颜色的文字的方法

在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中.而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信息. 我们可以通过对有用的信息设置不同颜色来达到醒目的效果,因为我平时都是在linux下开发,而linux终端中的颜色是用转义序列控制的,转义序列是以ESC开头,可以用\033完成相同的工作(ESC的ASCII码用十进制表示就是27,等于用八进制表示的33). 书写格式,和相关说明如下: 格式:\0

Android一个TextView设置多种颜色

有时候一个文本框为了强调内容需要显示不同颜色,用以下代码可以轻松实现 //为文本框设置多种颜色 textView=(TextView)findViewById(R.id.text_show); SpannableStringBuilder style = new SpannableStringBuilder("备注:签收人(张三)"); style.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 3, Spannable.SPAN_EXC

android中的颜色设置

1.在android中经常看到设置的颜色为八位的十六进制的颜色值,例如: 1 2 3 public static final class color {     public static final int lightblue=0x7f040000; } 或者在Java中tx.setTextColor(0xffff00f); 说明: 0xffff00ff是int类型的数据,分组一下0x|ff|ff00ff,0x表示颜色整数的标记,ff表示透明度,f00f表示色值,注意:0x后面ffff00ff

python在linux中输出带颜色文字

为了使输出更美观.醒目,有些时候需要在python输出字符上加一些颜色.很简单的分享下方法: 格式:\033[显示方式;前景色;背景色m 前景色            背景色           颜色 --------------------------------------- 30                40              黑色 31                41              红色 32                42              绿

开放中常用颜色代码

顏色 英文名稱 RGB 16色 顏色 英文名稱 RGB 16色 Snow 255 250 250 #FFFAFA PaleTurquoise1 187 255 255 #BBFFFF GhostWhite 248 248 255 #F8F8FF PaleTurquoise2 174 238 238 #AEEEEE WhiteSmoke 245 245 245 #F5F5F5 PaleTurquoise3 150 205 205 #96CDCD Gainsboro 220 220 220 #DCD