查看: 1390|回复: 0

法线贴图相关知识

[复制链接]

903

主题

951

帖子

3935

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3935

最佳新人

发表于 2019-3-22 14:48:19 | 显示全部楼层 |阅读模式
法线贴图

有三种算法 世界坐标算法 矢量切线算法 自身轴向算法 其中以矢量切线算法运用最普及 每个软件的矢量切线算法因坐标系的确定有所不同就目前看来 只有3DS MAX用的是右手坐标系(Z轴向上) 其他软件普遍采用左手坐标系(Y轴向上 Z轴纵深)
下面以3DS MAX的坐标系为基础说明 法线贴图切线算法的依据
1 假设模型上某一个点为一个极小平面 以这个面为0点像正方向画一条垂直线 这个根为法线 法线标示为N或Z
2 以这根法线为基础 由左至右的方向确认一根横向穿过法线他们的交点为0点 交点左边为负值右边为正值 同法线所在面平行 同法线垂直的线为纵向矢量线 纵向矢量线标示为U或X
3 以这根法线为基础 由下至上的方向确认一根纵向穿过法线他们的交点为0点 交点左边为负值右边为正值同法线所在面平行 同法线垂直的线为纵向矢量线 纵向矢量线标示为V或Y
4 如上建立了一个紧贴平面的法线坐标 他们换算到法线贴图 位图的关系是这样的
上面说的极小平面在位图上换算为一个像素点
上面说的X Y Z三个坐标的向量对应位图上R G B三个值 所以你会看到法线贴图为什么是红红蓝蓝的  
三个交点重合位置为原点 0, 0,0 在位图上显示为RGB值128,128,255 表示这个面没有下凹的空间变化注意这个位置是没有下凹 没有凸起的概念 这个128,128,255就是描述当前面为一个相对最高位置或者不存在
以原点为基础举例 越偏向右的模型面R值越小 越向下偏移的面G值越小 越深的地方B值越小
5 如此进行模型面映射到UVW每个像素的运算 最终得到法线贴图 在模型UV完全展开 不互相重叠的情况下 它真实反映了模型上每个面倾斜 下凹状况
6 用法线贴图可以将两个体型一样UV分部完全一样的两个模型细节状态进行互相传递 将高面模型的细节传递到底面模型上面 在底面模型上显示高面模型凹凸的效果 他比普通灰度贴图的BUMP有更真实的更准确的效果显示
7 普通BUMP使用的是像素偏移算法效果真实度受到模型和光线角度的影响 法线贴图使用的足像素光照及精确计算法线贴图每个像素反映在模型上的凹凸情况
使用法线贴图 还要联系到足像素光照的知识可以网上查一下

自身轴向法线贴图




自身轴向法线贴图插槽让你控制在细节生成过程中的细节方向。
一些类型要靠自身轴向贴图获得更多的高级效果,例如从下面飞溅泥污,
在上面哔~的尘土,沿着边缘渗出的泄漏物,或者其他你可以想到的自定义效果。


关注galaxixv,官方微信公众号。
GALAXIX UE4 讨论学习群 140439020
UE4精英学习群  12762592
UNITY学习群   194092348
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


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