Hello,大家好,今天和大家聊一下Unreal中Decal贴花拉伸运用技巧,我是木偶心没。
贴花(decal)在游戏里面是运用的比较多的,因为他可以简单的把图片运用不同的叠加方式绘制到另一个物体的表面,比如说游戏中的脏迹,脚印,弹孔和血迹等,都是贴花的效果。
在unreal里面,我们还可以单独绘制贴花的base color,roughness和normal。但是我们也会遇到一些常见的decal问题,比如说垂直的地方比如说墙边会进行拉伸。
这是因为decal计算的信息只有x和y轴,没有z轴的信息,所以遇到垂直的物体就不会自动投射z轴的信息造成拉伸。
我们只要在材质中算出贴花贴在垂直的那部分上的范围,然后剔除掉那部分就可以了。如何求出垂直的那部分,比较简单的算法是直接比较贴花的z轴和垂直的向量(0,0,1)是否垂直(夹角等于90度)。所以我们首先我们用Absolute World Position获取贴花的绝对世界坐标。
然后因为要获取的z轴是贴花的,需要在viewspace中进行换算,所以用transformVector将默认的世界坐标空间world space转化成view space,然后通过view space的x和y坐标的模(normalize)来求z的值。因为z轴是垂直于x和y的,所以只需要用cross就可以求得与x和y垂直的向量,即z轴。
求得以后转变坐标系到world space,因为需要求贴花的z向量和(0,0,1)的夹角。
用得到的结果与向量(0,0,1)进行dot(点乘),得到的值如果等于0的话则说明两个向量之间的夹角为90度,即垂直,因为如果遇到墙面,相当于贴花的法线方向就等于墙面的法线方向,所以会与(0,0,1)垂直。
所以如果我们用所得到的值和贴花的opacity做乘法的话,最后的结果就会把垂直那部分的效果切掉。
最后我们在引擎里面看到修改后的效果如下
来源:Thepoly公众号
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答有关剪辑学习,网上有很多动辄几万甚至几十万阅读的高赞问答。可见近来对视频剪辑制作,以及对AI视频创作动心的人,还是蛮多的
很多人都知道3ds Max是一款强大的3D软件,但不少艺术家觉得,在动画方面,它似乎没那么出色。这并不是说3ds Max本身不......
你有没有想过游戏设计师和游戏程序员的区别是什么?因为有时他们被称为游戏工程师或软件工程师,而且你经常听到开发者、程序员、工程师......
创作《环太平洋》里的机甲特别复杂。这个过程得靠SGI的精细设计,还得小心地跟实景拍摄的画面融合在一起
你要相信,任何行业或领域,都是有一套学习方法的。找对方法,事半功倍。 今天就给大家分享以下平时做短视频时用得比较多的剪辑干货。
《英雄联盟》官宣新赛季打法:火了这么多年,这款游戏咋做出来的?
今天下午,夏尔天逸公司来火星举办专场人才招聘会,招聘游戏原画、3D模型、角色动画、游戏特效等岗位。该公司目前在职游戏制作人已经......