红警DIY论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 173|回复: 3

【教程】手动法线食用方法1

[复制链接]
发表于 2020-3-24 19:43:12 | 显示全部楼层 |阅读模式
本帖最后由 鬼蟬 于 2020-3-25 16:15 编辑

考虑到再不做教程可能再过两年就再也没有做教程的必要了这个因素,我决定还是抽空把目前我所会的手动法线方法做成教程好了。系列教程计划大概会有两三次,这一次的教程帖介绍个人制作VXL的基本流程,并且以此说明法线计算器的食用方法。

有什么蝉蝉说的不清楚的地方一定不要吝惜回帖提问鸭~


       今天我们来一起做一个小斜方截半立方体。那么大家听说过小斜方截半立方体吗?小斜方截半立方体长什么样?小斜方截半立方体的几何性质又是什么样的?今天就来跟小编一起了解一下小斜方(停一下!停一下!)
       言归正传,我想表达的意思是,在制作一个vxl模型之前,你首先得明白你的成品需要是什么样子的,从今天的例子而言,它是一种半正多面体,长这样:


       知道了它的大小并决定好尺寸以后,就可以打开大家熟悉的VSE创建画布了。在这里我选用24x24x24,因为这样凑巧能让所有棱的长度都等于或约等于10像素,包括斜着放的那些也是7x√2≈9.9。



第一步 制作框架

       创建画布之后的第一件事情就是在Top、Right和Back三个视角内的最下层画上三视图,它的三视图长这样、这样、以及这样,很好



      需要注意的是,我在它三视图中所有面的交点上用不同颜色做了标记。将三视图画好了以后,从任意一个方向出发,确定出刚才用特殊颜色在三视图上确定出来的顶点在三维空间的位置。由于这是一个外形很简单的模型,所以顶点基本不会有什么偏差,在制作实际模型的时候,三视图中的顶点可能会发生互相对不上的情况,就要根据实际情况进行取舍。确定完顶点之后它长这样:



       确定完顶点位置之后,使用特定颜色(个人习惯深红色)将模型上会出现的棱边勾勒出来:



       接着是,我会把不同朝向的面用不同的颜色绘制出来,特别是相邻的面一定要用不同的颜色,即便有棱边分隔开。这样做一方面方便辨识,另一方面也为下一步上法线提供方便。千万别忘了斜面不能有断点哦,对角线方向的斜面甚至需要铺两层,这应该是制作VXL防止斜面穿孔的常识。




第二步 制作法线白模——大块面的法线处理

        打开法线计算器,找到右边的立方盒部分,这里的记录了最最常用的26种法线方向,就是上下左右前后、左前右前、左后右后、前上后上、前下后下、左上右上、左下右下、左前上右前上、左后上右后上、左前下右前下、左后下右后下。表格里分成了上中下三层,分布方式则与VSE中的Top视角一致,即画面的右边是模型的前脸,画面的上边是模型的左侧。



       然后就可以开始为模型朝向这些标准方向的面用油漆桶倒上法线色了~



       目前为止就把所有的正方形面的法线都涂好了,然而现在遇到了一个新问题,这里的三角形面是朝什么方向的?立体几何稍微好一点的同学可以很快算出其中“左前上”的这一块三角形的朝向是左转45°,仰角是arcsin(√3/3)≈35.3°,那数学不那么好的同学,或者遇到模型比较复杂的情况就可以使用三点共面计算了。首先确定在这个面上的三个点,我这里把选择的点用黑色笔钩了出来,然后在VSE下部读出它们的坐标,从模型外面往里看的逆时针方向排列,分别是(16,23,16)、(16,16,23)和(23,16,16)。



       将这三个坐标输入好了以后(注意计算器里是Z→X→Y,不是X→Y→Z),我们一样得到了(45.0°,35.3°)这个结果,将它输入最上面的经纬度查询器里,我们就可以得到这个面的法线值是182了。除此之外,查询器还一并给出了另外7个对称方向上的法线值,在这里恰好就是模型中还未上法线的另外7个面。




       于是工作画面变成了这样,一边开着计算器,另一边对照着计算器上的数值选择法线色号,用油漆桶倒在平面上。




       这一步做完以后模型是这样的,很显然,棱边和顶点的法线是还没有的。在部分使用手动法线技术作品中大家不难发现,它们的棱线过于锋利,以至于看起来十分呆板,而我们下一步对棱边和顶点的处理就可以做出过渡效果使得模型可以在保持外形准确的同时转角又更柔和一些。



第三步 制作法线白模——棱边与顶点的法线处理

       这里就选取顶面和前上面相交的棱作为例子



       这条棱相邻的两个面分别是顶面(0°,90°)和前上面(0°,45°),立体几何好的同学一下就能口算出它们的平均值是(0°,67.5°),那么这里我一样引入向量加权平均的功能。分别输入0,45和0,90,并把它们的加权写成1,其他写成0,意味着计算这两个方向一比一进行加权平均,我们同样得到了(0°,67.5°)这一结果,将其输入经纬度查询之后,一并得到的还有(0°,-67.5°)、(180°,67.5°)、(180°,-67.5°)的四个法线值225、218、53、47。类似地我们还能得到其他所有棱的法线值,并且逐一填充。填充完毕之后的模型长这样:



     最后就剩下顶点了。在这个模型中,每个顶点都和4个面相交,实际使用中几乎不会遇到超过4个面共顶点的情况(有的话其实也可以丢着不管,最后用自动法线勾选一下“只处理0法线”选项偷个懒)。顶点的处理也是相似的,使用向量加权平均,分别输入与之相邻的四个面,就可以求出来方向了。




       到了这一步其实也可以明显感觉到法线色的分布是有规律的,一般左对应绿色,右对应紫色,顶对应蓝色,底对应土黄色,前对应红色,后对应青绿色,其他方向则是依次过渡,左前为黄色,右前上为洋红色,右后下为黑色,左前上为浅灰色等等。一个法线分布合理,过渡均匀的模型,在法线视角下也应该是过渡色的,巨大的颜色对比意味着巨大的法线方向差异,只要有地方上错其实很容易看出来,把所有的体素点都填完法线以后,在预览中转动一下模型,最后检查一遍,没问题的话我们就已经完成了白模的制作过程了。





第四步 模型涂装

       完成白模之后当然要开始涂装啦,这里其实大家可以有自己的风格,而且由于手法党较少,具体怎么上色更好看也并没有人做出探索。涂装方面我个人是比较粗放的,主要就是用换色工具。因为前期顶点、棱边和不同的面已经用了不同的代表色,所以这里统一把它们换成需要的颜色(比如萌军色)就行了~我习惯上会把顶点用上最深一号色,棱比顶点浅一号,面再比棱浅两号,这样方便后续在用棱边色在面上画上细节。这就超出今天的内容了,我们下次再讲~



       那么最后放一下这个可爱的小斜方截半立方体的Ingame图吧~顺便我把这个模型自动法线并且平滑了一下作为对比




有什么蝉蝉说的不清楚的地方一定不要吝惜回帖提问鸭~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2020-3-24 19:52:23 | 显示全部楼层
支持教程,我记得法线颜色好像是把单位向量的三个分量从(-1,1)转换为(0,1)范围然后转换成RGB,(您的法线工具里颜色应该也是这样吧)
 楼主| 发表于 2020-3-24 19:55:00 | 显示全部楼层
owlcity 发表于 2020-3-24 19:52
支持教程,我记得法线颜色好像是把单位向量的三个分量从(-1,1)转换为(0,1)范围然后转换成RGB,(您的 ...

是这样的,我的法线工具里其实本身不包含颜色,只是将VSE里的对应法线色取色出来而已,一切都是为了贴合VSE使用的设计。
发表于 2020-3-24 20:50:53 | 显示全部楼层
我实在是忍不住了:魔圆咬!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY官方论坛

GMT+8, 2020-4-7 21:02 , Processed in 0.026279 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表