当前位置:首页 >教程首页 > Unreal Engine >Unreal中Decal贴花拉伸运用技巧

Unreal中Decal贴花拉伸运用技巧

发布时间:2020-10-05 09:59:13

Hello,大家好,今天和大家聊一下Unreal中Decal贴花拉伸运用技巧,我是木偶心没。

贴花(decal)在游戏里面是运用的比较多的,因为他可以简单的把图片运用不同的叠加方式绘制到另一个物体的表面,比如说游戏中的脏迹,脚印,弹孔和血迹等,都是贴花的效果。

1.png

在unreal里面,我们还可以单独绘制贴花的base color,roughness和normal。但是我们也会遇到一些常见的decal问题,比如说垂直的地方比如说墙边会进行拉伸。

2.png

这是因为decal计算的信息只有x和y轴,没有z轴的信息,所以遇到垂直的物体就不会自动投射z轴的信息造成拉伸。

我们只要在材质中算出贴花贴在垂直的那部分上的范围,然后剔除掉那部分就可以了。如何求出垂直的那部分,比较简单的算法是直接比较贴花的z轴和垂直的向量(0,0,1)是否垂直(夹角等于90度)。所以我们首先我们用Absolute World Position获取贴花的绝对世界坐标。

3.png

然后因为要获取的z轴是贴花的,需要在viewspace中进行换算,所以用transformVector将默认的世界坐标空间world space转化成view space,然后通过view space的x和y坐标的模(normalize)来求z的值。因为z轴是垂直于x和y的,所以只需要用cross就可以求得与x和y垂直的向量,即z轴。

4.webp.jpg

求得以后转变坐标系到world space,因为需要求贴花的z向量和(0,0,1)的夹角。

5.webp.jpg

用得到的结果与向量(0,0,1)进行dot(点乘),得到的值如果等于0的话则说明两个向量之间的夹角为90度,即垂直,因为如果遇到墙面,相当于贴花的法线方向就等于墙面的法线方向,所以会与(0,0,1)垂直。

6.webp.jpg

所以如果我们用所得到的值和贴花的opacity做乘法的话,最后的结果就会把垂直那部分的效果切掉。

7.webp.jpg

最后我们在引擎里面看到修改后的效果如下

8.webp.jpg

来源:Thepoly公众号

学员作品赏析
  • 2101期学员李思庭作品

    2101期学员李思庭作品

  • 2104期学员林雪茹作品

    2104期学员林雪茹作品

  • 2107期学员赵凌作品

    2107期学员赵凌作品

  • 2107期学员赵燃作品

    2107期学员赵燃作品

  • 2106期学员徐正浩作品

    2106期学员徐正浩作品

  • 2106期学员弓莉作品

    2106期学员弓莉作品

  • 2105期学员白羽新作品

    2105期学员白羽新作品

  • 2107期学员王佳蕊作品

    2107期学员王佳蕊作品

专业问题咨询

你担心的问题,火星帮你解答

微信扫码入群领福利

扫码领福利最新AI资讯

点击咨询
添加老师微信,马上领取免费课程资源

1. 打开微信扫一扫,扫描左侧二维码

2. 添加老师微信,马上领取免费课程资源

×

同学您好!

您已成功报名0元试学活动,老师会在第一时间与您取得联系,请保持电话畅通!
确定