注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鬼喊鬼叫

老鬼的私密空间:CG新闻、作品集、相册、不断更新…老鬼网站:vi91.com

 
 
 

日志

 
 

Normalmap原理及去除接缝[图文详解]  

2009-08-26 22:52:35|  分类: 教程 Tutorials |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

许多新同学可能对Normal Map法线贴图的真正原理还不够了解,这里我再将以前写的一片阐述Normal map原理的教程再发一次。想了解法线贴图原理的同学,耐心看完后就会对Normal map的概念非常明了了。

在遇到Normal map上出现接缝时是十分棘手的。它不像Diffuse和Specular那样,可以直观的在ZB或者BodyPaint里用投射的方法去修平。这是因为Normal map本身原理所致。

在这里我想先再详细讲一下Normal Map的原理。如果你觉得自己对Normalmap已经非常熟悉可以跳过这一节。

 

●  NormalMap 原理:

我建议新手在得到一张NormalMap时,把Red/Green/Blue三个通道分开来看,因为NormalMap的三个通道之间是互相独立的,在R/G/B三个通道中,不同的灰度,表达了低模表面上法线偏移的程度。大家知道,法线在物理中的定义是垂直于物体表面的一条假想的直线。而在MAYA中,法线的概念并不一样,它不一定要垂直于物体表面,并且具有方向行。我们可以在MAYA中直观的看到物体上每个顶点的法线的方向。

  Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫

 

显示顶点法线后的模型:

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫 

我们可以选择顶点,用Edit Polygons->Normals->Vertex Normal Edit Tool试着调整顶点法线的偏移。来让模型看起来与现在不同。

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫 

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫

 

经过这样调整法线方向以后,模型表面像增加了一个曲度。这种调整的原理类似于NormalMap对法线偏移的调整。只不过NormalMap能够调整模型上的每一处细节;但用这种方法,只能调整低模上有限的点。

 如果我们建立了如下图的高低模,并烘焙出法线贴图。

 Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫

那么实际上是把LowPoly表面的法线偏移方向调整成了HighPoly表面的法线方向。如下图。

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫 

 

 

●  结论和规律

我们再做一个简单的实验,测试了三色通道的具体含义,得出后面的结论。

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫

这个是圆环模型

 

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫

这个是用光照的方法生成的Normal

 

以下是R、G、B三个通道:

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫Red通道

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫Green通道

 Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫Blue通道

 

 

由上图得出以下结论:

  在红色通道里:白色表示法线向右偏,黑色表示法线向左偏。

  在绿色通道里:白色表示法线向下偏,黑色表示法线向上偏。

  在蓝色通道里:越黑表示越深。

  如果想把某出的Nomalmap填平,可以在上面覆盖一层RGB值为128、128、255的颜色,编号为:8080ff

 MAYA里Normalmap的绿色通道和MAX里Normalmap的灰度相反。

  有了这些研究成果,以后修改Normal就方便多了。甚至可以手绘部分细节。

这样就可以得出下面的规律:

所有Normal贴图的红色通道,都是在水平方向上有黑白渐变。

所有Normal贴图的绿色通道,都是在垂直方向上有黑白渐变。

根据这个现象可以很容易的在通道里判断出哪里的Normal不正常,需要红绿通道交换。

 

 

●    修理Normalmap接缝

在做人物的时候如果遇到下图这样的接缝,最开始做的应该是弄清是哪张贴图产生的接缝,而不要盲目的直接去修Diffuse。正确的做法应该是排除其他贴图的干扰,单独贴上Diffuse, 修掉Diffuse上的接缝,再单独把Specular贴到color上修掉接缝,最后再修Normalmap的接缝。

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫 

  对于Diffuse和Specular上的接缝,可以很容易的用ZBrush的ZApplink插件修掉。但对于Normal上的接缝,是不能用直观的方法修掉的。因为接缝两边的法线偏移的值并不是相同的,也就是说,颜色是不同的。下面我们就来探讨一下如何去处Normalmap上的接缝,而不仅仅是用8080ff的颜色把所有细节涂平。

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫 

我们先排除其他贴图的干扰,只贴NormalMap,可以看到有一条明显的接缝。现在的法线看起来似乎是图上箭头所表示的趋势。在前一节已经探讨了Normalmap的原理。脖子后面接缝的产生也是因为左右两边法线偏移方向不对。我们要想修正这条接缝就是调整要Normalmap上的颜色,使接缝两边的法线方向一致。

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫   现在看上去的法线方向

  

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫  修改后应该达到的法线方向

 

所以要将左边绿色网格对应区域的法线向左偏,白色网格对应区域的法线向右偏。

根据“在红色通道里:白色表示法线向右偏,黑色表示法线向左偏。”的原则,要在红色通道里把绿色网格那边的Normalmap加深,白色网格那边的Normalmap减淡。这样就可以把接缝修掉了,而且不会损失Normalmap上的细节。如图: 

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫 

 

在红色通道里把绿色区域接缝附近的Normalmap的减淡(上图),把白色区域附近的Normalmap的加深(下图)。 

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫 

这样就把脖子后面的接缝修掉了。虽然看起来原理很复杂,但只要理解了每个通道所代表的含义,很直接的会想到在通道里用加深减淡的方法修正法线偏移。如果实在弄不清到底是用加深还是减淡,就先随便用加深或者减淡试一下,如果接缝变浅了那就对了。但记住,修接缝的时候一定要排除其他贴图的干扰,只贴一张图去修。最终修好的效果如图:

Normalmap原理及去除接缝 - 石像鬼 - 鬼喊鬼叫 

 

Isaac_zou

2006-12-21

  评论这张
 
阅读(1003)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017