一一一一一一一一一一一一一一一一一一一一

嗨!大家好,我是红糕,好久见啦!

最近哔哩哔哩一直没有更新在这里给大家说声抱歉,哈哈,目前在消化之前所学的知识,所以会一段时间没办法去看教程,自然就会比较少帮运啦!不过呢这次死皮赖脸找了一位大佬授权了这篇文章,哈哈!

法线是切线的垂线吗_法线是什么_法线是什么意思数学

希望对大家有帮助

一一一一一一一一一一一一一一一一一一一一

当今时代,次世代流程被广泛使用。在几年前,次世代流程专指使用了法线贴图的流程,可见法线贴图的重要性,今天我就来分享一下什么是法线贴图,如何烘焙优秀的法线贴图。

本文使用的软件为maya2018和八猴3.04。

首先,什么是法线贴图。我个人理解为改变面法线信息的贴图。法线是光线计算时的重要依据。根据法线方向可以得到面的朝向,从而计算光线打在一个平面上的亮度。这个很好理解,一束平行光打在一个平面上,根据观察角度的不同,光线的强度也会不同。最强的自然是反射后完全照射进了摄像机,这会形成了高光。

但是在游戏制作的过程中,面的数量是有限的,不能够描绘足够复杂的凹凸起伏变化,于是法线贴图就应运而生。法线贴图将原本一个面单一的法线方向改变为根据贴图的红绿蓝三个通道计算xyz轴的方向,得到许多方向不同的法线。这样从观察者的角度来看,这个面就不是完全的平面,而是一个有起伏的面了。但是注意,这个面的效果仅仅是在光线计算时的造假行为,所以本身的模型并不会变化,在一定可视角度下,法线效果也会失真,显示出原本面的本质。

接下来我们来说说看法线烘焙的原理。

法线是什么意思数学_法线是切线的垂线吗_法线是什么

上图是我简单绘制的一张法线烘焙原理示意图,红色的长方形框框代表模型的包裹框,蓝色的圆圈代表高模,黄色的箭头代表采样射线。为什么黄色的箭头会有两种呢,这就关系到maya中的软硬边设置了,也是许多人法线烘焙出接缝的原因所在。

法线是什么_法线是切线的垂线吗_法线是什么意思数学

上图中有2个立方体,左边的立方体是全硬边的,可以看到每个点上有3根法线,而右边的立方体是全软边的,可以看见每个点上只有一根法线。由于软硬边的不同导致点法线也有所不同,最终导致了模型在烘焙法线时发射的采样射线方向也有所不同。

那么软硬边该如何分呢?这里我将做一组实验。

法线是什么_法线是什么意思数学_法线是切线的垂线吗

这里有四组模型,低模为两个面组成的一个直角,高模为做过倒角的弧面。在设置上,四组模型从左往右分别为,硬边不切开UV,软边不切开UV,硬边切开UV,软边切开UV。下面我将在八猴里面烘焙他的法线贴图并且做对比。

法线是切线的垂线吗_法线是什么意思数学_法线是什么

首先,第一组模型率先被淘汰,硬边不切开UV的烘焙方法会出现明显的线。另外三组看上去貌似差不多是吧,下面我们来比对一下法线贴图上的区别。

法线是切线的垂线吗_法线是什么_法线是什么意思数学

由此图可知,因为法线贴图的过渡不圆滑,导致第一组出现了明显接缝,而第三组虽然法线贴图并不圆滑,但是由于UV断开的关系导致并没有出现接缝。第二组和第四组在效果上并无区别。

第一个结论在这里就出现了,如果UV不断开,在maya中,线必须是软边。那么断开的情况下,第三种和第四种哪种更好呢?

法线是什么意思数学_法线是什么_法线是切线的垂线吗

上图是在八猴内,同时显示法线贴图和高模。可以清楚的看见,硬边UV断开的模型上法线贴图当低模和高模平行时,渐变消失,而软边UV断开模型,渐变则更深入。但是在观测过程中效果并不明显。

由此得出结论,当UV断开时,硬边可以最大程度还原高模的变化,而软边则不如硬边。

从以上的论述,我们可以得到一个懒人结论,UV不断开的边设置为软边,而UV断开的边界设置为硬边。

但是还有几种情况,由于实验不便,我在此直接论述。

面和面之间角度大小对法线贴图烘焙造成的影响。首先当两边形成钝角时,这种是最常见的,并无问题。但是当两边形成直角甚至是锐角时,对法线烘焙的影响就出现了。由于高模和低模直接难以做到点对点地适配,所以当出现锐角的时候,法线难免会出现黑边,反向等等问题。

法线是什么_法线是切线的垂线吗_法线是什么意思数学

法线是切线的垂线吗_法线是什么_法线是什么意思数学

上图便是其中一种法线烘焙错误。所以就结论而言,在低模拓扑的过程中,如果对模型质量要求较高,请竟可能避免在低模中出现锐角,通过给锐角倒角的方式,形成2个钝角,这样可以正确地反映高模上的细节。

最后有一个小贴士,由于所有的模型进入GPU渲染时,计算机只认三角形,所以所有的四边面都会被转化为三角面,这个时候有些四边面就会出现问题了。

法线是什么_法线是什么意思数学_法线是切线的垂线吗

如上图,中间的四边面有左右2种三角面的分法,由于软件算法的不同,可能会导致包裹框无法包裹模型出现烘焙错误。或者是,法线贴图导入到引擎时发现贴图的显示效果不正确,出现明显的扭曲。当你的模型贴上法线后,发现原本笔直的细节变得弯弯扭扭时,不妨回到maya里面,给四边面切割成两个三角面试试看。

除了上面的问题我们往往还会遇到一些常见的问题,例如圆柱体的法线烘焙。

法线是切线的垂线吗_法线是什么_法线是什么意思数学

这是最常见的法线烘焙问题,这些细小刺眼的黑边是硬表面建模最难以接受的东西之一。

解决这个问题的办法也相当简单。在高模制作的过程中在,保持高模和低模在圆柱段数上的一致。

法线是切线的垂线吗_法线是什么意思数学_法线是什么

这样烘焙出来的法线就大致上是如此的。虽然没有了黑边,但是相对的,模型的法线效果也显得不够圆润。如何烘焙这个贴图,就是取舍的问题了。

除了上述的这个问题,还有一种波浪状的法线烘焙问题。这两种问题在本质上没有区别,是高低模匹配导致的问题,解决方法也是相同。实际上,硬表面建模在制作过程中往往有非常多的细节,如果出现这些圆柱,唯一的办法就是烘焙2张法线贴图,最后在ps里面合成出最终的效果。

以上都是一些常见的问题,还有一些不常见的问题。

法线是什么_法线是什么意思数学_法线是切线的垂线吗

上图是一个盒子烘焙的测试图片,可以看见在边上有2条非常明显的边,但是我们的模型呢。

法线是什么_法线是切线的垂线吗_法线是什么意思数学

就是如此简单的2个模型。那么为什么会出现这种错误呢。

在多次实验之后,我发现,当对应弧面的位置低模卡了倒角,切倒角特别小的情况下,就会出现以上的烘焙错误。

如果我们把这个倒角扩大,最终的烘焙效果也就显示正常。

法线是什么意思数学_法线是什么_法线是切线的垂线吗

那么为什么会出现这种问题呢?

以下为不负责回答,只是我本人的一种猜测。

法线是什么意思数学_法线是什么_法线是切线的垂线吗

这张图片分别标识了一个角和两个角,在全软边情况下,法线指向的示意图。在这张图中可以看到,如果倒角的两条边特别近,那么根据低模法线方向打出来的采样射线在一定距离后会相较于一个点,最终穿插。那么,如果高模的面在这个点靠近低模的一侧,采样射线可以正常地覆盖高模的表面,也就是正常烘焙。但是如果在这个点远离低模的一侧,那么采样射线会交叉之后,导致部分位置被重复采样,且倒角中间的面采样为反向。

以上是我所能想到的相对合理的解释。但是出现这个问题对于建模来说,还是可以归纳到高低模并不匹配的范畴之内。

这个问题在生物体建模中并不常见,但是如果在硬表面建模时,边上出现了两条棱线,不妨往这个方向思考看看,是不是倒角之间的距离不够,导致的高低模并不匹配。

硬表面高模制作小技巧

相信大部分做过硬表面高模的小伙伴都为如何卡线而烦恼过。而有些弧面上的结构,往往是卡上1个小时,也不能达到理想的效果,最终只好对现实妥协。这里我给大家隆重介绍Maya的一个功能,在某种程度上可以避免卡线带来的烦恼,帮助各位完成一个高模。

下面,我先展示一个案例的效果图和线框图。

法线是什么_法线是切线的垂线吗_法线是什么意思数学

法线是什么_法线是什么意思数学_法线是切线的垂线吗

通过这组图片可以看到,我对这个模型的布线可以说是完全没有处理过,但是高模依旧可以达到完美圆润的效果。

在说明方法之前,我要先说明这个方法的适用范围。首先这个方法只适用于假高模。所谓的假高模就是不按3圆滑,而是通过倒角命令做出圆润效果的那一类高模。不过,这又有什么不好呢。做假高模往往比按3圆滑卡线更节约时间,做出来的效果也并不比圆滑的模型差。

第二,这个方法的本质是通过修改模型表面点法线,来使得模型看上去光滑,所以有时候可能会出现怪异的效果。最重要的是,最终效果受制于点的数量,如果点的数量不够时,可能会不太圆滑。

下面我就要隆重介绍那个命令了。

法线是什么意思数学_法线是什么_法线是切线的垂线吗

就是上图红框内的这个命令。据我了解大部分人很少使用这个命令,最常见的使用方式是角色建模时,使用这个命令使得头发面片的法线可以一致,让高光可以柔顺。又或者是用这个命令传递UV。

下面我要开始简单介绍一下我的制作步骤。

首先我们需要一个型。在制作硬表面结构前,我们得有清晰的意识,这个结构是由哪些简单的形状拼接而成的,通过分析,将复杂的硬表面转化成简单的几何体。

我这里以球型为例,假设我们要制作的这个铠甲表面是球型的。

法线是什么_法线是切线的垂线吗_法线是什么意思数学

然后我们需要先做个备份,接着往上面扣个洞。所以我使用挤出工具,向内挤压,然后选择了部分面进行倒角。这里可以通过按3观察效果,制作过程可以比较随意。

法线是什么意思数学_法线是什么_法线是切线的垂线吗

然后,我选择了中间这部分的面圆滑。

法线是什么意思数学_法线是切线的垂线吗_法线是什么

使用三角化命令简单处理之后,赋予一个blin材质观察效果

法线是什么意思数学_法线是切线的垂线吗_法线是什么

法线是切线的垂线吗_法线是什么_法线是什么意思数学

然后我们需要使用一开始的备份,将它圆滑后,打开我们的命令。

法线是什么意思数学_法线是什么_法线是切线的垂线吗

一般使用以上的设置就可以满足大部分要求了。然后按下apply。

法线是什么意思数学_法线是什么_法线是切线的垂线吗

观察上图可以看到,结构虽然还在,但是变得极其微弱。这是因为,这时候所有的点的的法线都是根据传递模型最接近点的法线设置的。这时候所有的法线都是锁定的。

接下来我们只要解锁除了衔接部位以外的位置的法线就可以了。

法线是什么_法线是什么意思数学_法线是切线的垂线吗

当完成以上的步骤之后,请务必保持法线锁定,一旦解除法线锁定,效果就会回归原样。另外这个命令支持选取部分面进行传递。

法线是什么意思数学_法线是切线的垂线吗_法线是什么

利用拍平的方法制作高精度低模和lod

在众所周知,在游戏建模中,经常会有凸起的结构。这些结构往往十分复杂,且难以精简结构面数,导致要么模型面数十分之多,要么就只能用一个简单的面概括过去,在侧面得到极差的效果。

在游戏模型的制作过程中,有一种叫做Lod的技术极其重要。简单地说,这是一种根据摄像机的距离显示不同模型的技术。当摄像机很接近模型的时候,显示的模型精度比较高,面数较多;当摄像机拉远的时候,模型就面数较低,比较概括。

所以我们最开始的问题就可以用这种技术解决,当我靠的比较近的时候,我们显示较为高面数的模型,拉远之后就显示面数较少的模型。

这里我给大家举个例子。

法线是切线的垂线吗_法线是什么意思数学_法线是什么

当摄像机比较接近的时候,我们可以显示左边的模型,当摄像机较远的时候,我们就显示右边的模型,利用法线来制作光影效果。

但是如果这样制作模型,我们该如何保证从左边切换到右边时,模型的效果可以保持一致呢。

想象一下,如果右边有这么一套贴图,上面有着左边的文字,然后我们把左边的文字的UV拍平了,摆在那个贴图上字的位置,那么是不是就可以完美表现字的效果了?

法线是什么_法线是什么意思数学_法线是切线的垂线吗

答案是否定的。

通过前面的文章,我们可以知道切线空间法线是基于模型原本的法线然后改变法线的方向达到效果的。如下图所示

法线是什么意思数学_法线是切线的垂线吗_法线是什么

左侧模型的法线和右侧平面的法线方向并不同,当我们把法线贴到这个凹凹凸凸的面片上时,就会得到错误的结果。所以我们需要用到maya的一个功能Vertex Normal Edit Tool(点法线编辑工具)。

法线是什么意思数学_法线是什么_法线是切线的垂线吗

简单地说,这个工具可以手动编辑每一个点的法线方向,我们可以把这个模型的法线改变为全部垂直于底面。这样,当我们把贴图贴在模型上时就不会出错了。

法线是什么意思数学_法线是什么_法线是切线的垂线吗

当然这个方法也有一定的局限。首先这个方法必定会拉升斜面上的UV,导致贴图拉伸。所以让我们来计算一下。一般来说,贴图的拉伸不能超过1.5倍,不然就会有明显的问题,由此可得一个直角三角形,计算得到夹角为48.19°,找个简单方便记忆的数字,就是斜面与平面的夹角不能大于45°,不然就会出现明显的拉伸,破坏效果。

法线是什么意思数学_法线是什么_法线是切线的垂线吗

当然除了点法线编辑工具以外,之前的属性传递也可以办到同样的事情。

那么我们该如何把模型UV拍平呢?

法线是什么_法线是切线的垂线吗_法线是什么意思数学

在UV工具栏中,有一种UV创建方法是基于摄像机角度,创建一个平面的UV,我就是用这个功能来制作的。使用这个功能,我们不仅仅可以制作三视图的拍平,当模型存在斜角的时候,我们同样可以取面的方向来制作拍平。

当模型烘焙的时候,建议移除低模中突出的部分进行烘焙,不然由于UV重叠可能会导致烘焙出错。

以上就是通过拍平的方法制作高精度的花纹和lod的思路,希望大家在模型制作的时候可以灵活运用。

法线是什么_法线是什么意思数学_法线是切线的垂线吗

(最终效果就如同上图,当摄像机靠近时显示左边的模型,拉远就显示右边的面片)

法线是什么_法线是切线的垂线吗_法线是什么意思数学

(法线效果)

同理,如果我们通过SD这一类的软件,获得了一套完整的PBR贴图,还有一张用于置换的heightmap时,如果我们想通过zb之类的软件把heightmap直接制作在模型上时,也要注意法线的问题。例如对面片进行置换时,置换是不会改变法线的方向的,所以heightmap转换成模型后,要把原模型的法线信息传递到新的模型上,才能获得正确的效果。

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: yjxmw518