网站排名软件,淘宝做链接有哪些网站可以做,兰州需要做网站的公司有哪些,人力外包项目发布平台一、效果如下图#xff1a; 二、分析#xff1a;
回顾复习#xff1a;在后期处理材质三中#xff0c;我们通过计算开启自定义深度通道物体的像素点上下左右4个像素SceneTextureCustomDepth深度之和来判断物体的外部#xff08;包含物体的边#xff09;和内部#xff0c…一、效果如下图 二、分析
回顾复习在后期处理材质三中我们通过计算开启自定义深度通道物体的像素点上下左右4个像素SceneTextureCustomDepth深度之和来判断物体的外部包含物体的边和内部只有内部像素他的上下左右4个像素自定义深度之和才为有限值边和外部都为无限大这与没有自定义深度物体用无穷大填充有关这样我们使用if语句就能判定它与无穷大的关系从而让边和外部为描边颜色内部为场景颜色。我们通过自定义模具得到物体外部为0内部为模具值的蒙版这样我们可以用lerp节点当为0时为场景色而边和内部为上一步if语句的结果就可以了。
那么场景物体描边怎么来确定这个边呢
边有什么特点呢相信理解了场景深度、自定义深度和自定义模具知识的朋友们会发现边的场景深度是不是悬殊很大因为2个物体有间隔所以两个物体的场景深度悬殊大差值是不是很大那么我们怎么得到这个差值呢是不是边的上边像素减去边的下边像素是有很大的值这能不能作为边的判定条件呢
三、所涉知识点
SceneTextureSceneDepth场景深度
场景深度图代表的意思是物体离摄像机越远数值就越大离摄像机越近数字就越小越接近黑色 。测试如下图 四、制作步骤
1、当前像素的场景深度减去右下方像素的场景深度
根据我们的分析如果我们把一张场景深度图减去偏移一个像素的深度图那么在场景深度有断层的附近将会有数值相对较大的差值出现我们就可以用这种方法得到场景的描边勾线 。
效果制作如下 得到效果图如下 画面有抖动材质的可混合位置为色调映射前就解决这个问题了。 2、分析结果出现原因
上一步我们运用之前偏移像素点的方法以SceneTexelSize作为偏移单位接着与保存UV各个像素点uv坐标的 ScreenPosition进行相加然后输出给SceneTextureSceneDepth的UV来获得临近的场景深度最后用原本的场景深度减去获得的结果就得到了上面的结果。我会发现不是我们想要的结果。
从不同的角度去观察墙面会得到不同的效果如下图 为什么会出现这种情况呢我们来分析一下
先用场景深度图的变化来看看 水平方向偏移50个场景文素单位后得到的图 发现场景深度发生了移动如果两者相减调整下文素大小会得到下图 发现上图只是对左边的边就行了描边而右边没有描边文素大小不调整看看效果 如果还是不理解我们可以用具体的数值进行解释 这是右边你会发现都是正的。下面看看左边的具体数值都是负的就是黑色的。 3、场景物体边缘判断
通过上面的操作我们得到了左边边缘的描边要想得到右边就需要偏移方向相反如果我们把它们加起来就得到了左右的边缘描边如下图 如果你对上面不理解那么我们还是需要具体的数值来加深理解如下图 经过左右偏移相加之后你会发现除了边缘为正的其它都是为0或者为负的也就是黑色。
同理我们获得上下边缘的描边再加上去。 4、拓展与提高
1但是这个描边勾线还不是最精确的因为当在同一平面的场景深度时线框就没了。
为了得到更精确的描边勾线我们可以用SceneTextureSceneNormal场景法线可以让细小的凹槽部分面的朝向不同也能有颜色上的差异而颜色的差异也就是数值上的差异。 同样用上面的方法再制作一遍这边直接复制修改SceneTexture的ID就好了然后会得到一个法线版本的描边勾线注意最后除的5000是为了观察效果的得去掉否则一片黑。
效果图如下 为了得到更全的描边效果可以把两种方法的结果去最大值max这样应该就不会遗漏未描的边。
2描边颜色该如何修改
直接乘以一个颜色就可以了。
3遮罩范围内是真实的另一边是线框的效果
就是用一个遮罩来判断使用场景纹理postprocessinput0还是场景描边。这里需要用到一个蓝图节点spheremask知识点如下
SphereMask的参数
SphereMask有四个输入参数。
A待检查的位置。
B圆心的位置。
Radius半径。
Hardness硬度0是完整过渡100是没有过渡。
输出的是一个0~1之间的数。当A在B之外时输出0当A在B的位置时输出1。A在园内时输出0~1具体取决于是否有硬度以及位置。
注意A和B可以1~4维的vector。 我们可以在小白人蓝图中把小白人的位置传递给材质参数集中向量参数location其为为B的输入worldposition为A的输入Radius为材质参数集中的标量参数可以让它在3秒内随着时间变化让它作为Radius的输入。蓝图节点如下
后期处理材质中 小白人蓝图中 材质参数集 这样的话就有了动态的效果了。
4如何让角色周围是描边并添加遮罩的发光圈
首先我们需要在材质中得到角色的位置可以通过材质参数集进行传递步骤如下
新建材质参数集参数命名为locationVector 小白人蓝图中实时给它传递值 材质中使用 效果如图 5天空应该怎么摘出来
天空没办法开启自定义深度通道所以我们要尝试用SceneTextureSceneDepth场景深度求出因为天空离摄像机最远所以可以与某个比较大的数比天空离摄像机的距离略小进行对比的时候只有天空的部分会比这个数大我们就能得到天空的黑白遮罩蒙版了。测试材质连接如下 效果如下图 这样我们就得到了天空的蒙版可以让天空显示原来的颜色其它部分显示线框。 效果图如下 五、参考教程
https://zhuanlan.zhihu.com/p/87762783
UE4后期处理材质的一些应用下 - 哔哩哔哩
【UE4】虚幻4使用后期处理制作的发光轮廓线效果_哔哩哔哩_bilibili