微信公众号开发微网站开发,海外做淘宝网站,国外做名片网站,东莞建设工程交易中心门户网站原教学视频链接#xff1a;
ue4 材质描边、外发光、轮廓线_哔哩哔哩_bilibili 步骤
1. 首先新建一个材质#xff0c;这里命名为“Mat_outLine” 在此基础上创建一个材质实例 2. 在视口中添加一个后期处理体积 设置后期处理体积为无限范围 点击添加一个数组 选择“资产引用”…原教学视频链接
ue4 材质描边、外发光、轮廓线_哔哩哔哩_bilibili 步骤
1. 首先新建一个材质这里命名为“Mat_outLine” 在此基础上创建一个材质实例 2. 在视口中添加一个后期处理体积 设置后期处理体积为无限范围 点击添加一个数组 选择“资产引用” 将刚创建的材质实例拖入 3. 打开材质“Mat_outLine”
修改材质域为“后期处理” 修改 可混合位置 为 “色调映射前” 4. 新建一个材质函数这里命名为“MF_GETKERNEL” 打开材质函数“MF_GETKERNEL”添加一个输入表示宽度 输入类型设置为“函数输入标量” 设置一个默认值 获取当前像素在屏幕的位置作为中心点 输出命名为中心点 通过“SceneTexelSize”函数获取像素大小也就是1/屏幕像素每个像素占屏幕像素的比例 通过如下节点实现向右偏移1个像素单位 添加两个输出分别用于输出左右点的坐标 乘-1得到左边的坐标 通过相同的方法计算出上下两个点的坐标 5. 回到材质“Mat_outLine”中 调用上一步创建的材质函数 通过深度的不连续性计算出物体的边缘添加“SceneTexture”节点 场景纹理ID设置为“场景深度” 由于深度值比1大因此看到的是一片白 接下来通过卷积计算出物体的边缘就是中心点乘4再减去相邻像素的和 我们对该节点的输出引脚重新排序 6. 回到材质函数“MF_GETKERNEL”中重新设置每个输出节点的排序优先级从上到下为0~4 如下标注的地方之前连错了改一下 设置完后记得保存、应用 7. 回到材质“Mat_outLine”中做如下连接此时可以看到物体的边缘都是大于1的值 看到乱闪现象是因为深度差太大我们把值限制到0~1范围内即可 用场景深度是会影响整个场景的所以把函数的场景深度改为自定义深度这样就能针对某一个物体描边了 8. 回到视口中选中需要显示轮廓的物体勾选“渲染自定义深度通道” 9. 回到材质“Mat_outLine”中通过如下节点获取场景本来的颜色 可以看到此时轮廓线已经显示出来了 10. 接下来给轮廓线上个色
在材质中添加一个四维向量参数用于调整轮廓线颜色 将宽度也设置为参数 11. 打开材质实例“Mat_outLine_Inst”
我们可以通过参数控制轮廓线的宽度和颜色 12. 此时我们可以显示物体的轮廓了但是也只是外轮廓其他的边无法显示如果想显示更多轮廓就需要加一层法线的边缘检测
打开材质“Mat_outLine”复制一份如下节点 将宽度连上 将“SceneTexture”节点的场景纹理ID改为“场景法线” 将结果连接到自发光颜色
应用、保存后 此时可以在视口中可以观察法线的分布 法线有RGB三个值我们取最大的值用 把计算后的值与深度值相加 通过“step”节点剔除小于0.4的部分超过0.4输出为1小于0.4输出为0 由于我们只想显示外轮廓因此这里设置为0.95 添加一个参数用于控制轮廓发光的强度默认值为1值越大越亮 13. 打开材质实例我们可以通过参数“发光强度”来控制外轮廓的发光强度 14. 此时还存在一个问题就是如果取消勾选“渲染自定义深度通道”还是会显示法线轮廓 15. 为了解决上述问题打开材质“Mat_outLine”复制一份基于深度的边缘检测节点 取核中最小的值 用计算出的值和10^7作比较如果小于10^7则不显示外发光 此时我们就可以通过勾选“渲染自定义通道”来设置是否显示轮廓线了