oc渲染器同时贴了黑白凹凸贴图和法线贴图,但是只有黑白贴图有效果,法线的没有效果是怎么回事

1、凹凸贴图存储的是高度差信息8bit灰度图。

2、凹凸贴图影响三角面的法线相对光影方向的偏移量(

越凹偏移量越大计算出的颜色越暗,给人凹陷的感觉;

反之偏移量越尛颜色越亮,给人凸起的感觉)

     法线贴图是直接记录三角面的法线相对光影方向的偏移量在x,y,z三个轴上的分量

总之,两种贴图最终达到嘚效果是一样的(都是影响渲染流水线中法线和入射光线的夹角)只是存储信息的方式不同。

我要阐述的问题只是一种思路和概念没有涉及具体操作,没有基础的朋友最好先了解一下bodypaint以及C4D常规应用的基本常识否则可能会看不明白。

以下内容是我长时间积累在記事本上的记录不是一天写出来的,可能有些散大家可以捡有兴趣的部分看看...

这个是关于法线贴图的一些另类创作思路,这一层是理論部分着急看示例过程的朋友请直接前往下一层,大家都知道我们现在都是使用高模映射的方式来产生法线好了,引出话题来了继續...

是否3D模型细节都需要使用高模雕刻来得到法线贴图呢,

显然答案不会是绝对肯定的就现有技术而言,雕刻并不等于实用效率也不代表最低成本。当然此处并非否认雕刻软件的价值,只是要我们思考一下当前阶段是否有必要过于依赖数字雕刻技术。

以我们现有的软硬件平台设备而言直接驱动雕刻后的高模来动画或是用于交互显然是不现实的,我想即便是能实现的一天资源也不会被如此滥用特别昰交互领域的应用(例如3D游戏)。

这样就产生了一个问题我们使用雕刻软件来精心雕琢的模型转为法线之后,高模就没有再次的实际用途了或者说是没有充分的被利用,只是充当了一个过程产物

这个用途指的是广义上的,及真正体现其价值的应用例如被最终用于CG渲染之类;大家不必为我这个说法来研究字眼错误或是语法问题,领会精神!呵呵

我要说的是,在很多情况下我们可以使用更廉价的办法来创建法线贴图,雕刻并不是法线贴图的唯一途径

说道此先来阐述一下法线贴图的概念吧,观点是基于我个人经验的如有错误或是跑偏还请大家纠正。

法线贴图目前常用的有两种模式对象法线与相切法线,相切法线又称局部法线至于二者的区别,过后细说先看看法线与凸凹的效果与原理差别。

什么是法线(Normal)呢法线即是几何体(三角形)正面的朝向,通过这个方向与灯光的角度来计算改几何體是否被照亮以及照亮的程度

这是数字3D场景光影着色概念的基础。一个三角形在互相作用下通过平滑差值运算可以同时拥有最多三个方姠的法线(实际还是一个)

如果用几何体描述法线的效果与几何体(三角形)数量是紧密相关的,代价比较大;

而法线贴图的做法是鼡像素贴图来定义法线方向,即一个像素定义一个法线朝向一个三角面上能包含多少贴图像素(与贴图大小、UV展开形式有关),就可以擁有多少条法线这样既节省资源又可以做到快速运算,因此在交互行业得到大量的应用在其它领域应用的例子也很多。

有一点需要强調即法线贴图不会改变几何体的形状,只是一种贴图效果因此不等于置换,至少目前如此(在这个技术更新频繁的念头加上这句话不吃亏)

凸凹(Bump)大家应该都不陌生,其特点是比法线贴图廉价但效果仅相当于一个ps滤镜,只适合描述特别细小的纹理

说道此不得不提的一个问题,即二者在全局光之下的表现因为全局照明应用愈来愈广泛,这个问题就越发值得我们注意;

全局照明是一种实用进阶的模拟现实照明的计算与传统的数字模型光影算法有较大差异,全局光照这个概念也由初期的与传统虚拟光源混用发展到今天的可以脱离傳统光源具体形式如纯HDRI照明或是其他几何体自发光照明,C4DR11版本这部分功能就得到了充分的加强。

业界知名的渲染器maxwell就是一个完全脱离了传統数字照明渲染的方式的典型

在很多传统渲染器中,如果我们使用HDRI全局照明而未使用数字虚拟灯光,我们会发现一个问题那就是高光效果消弱很严重甚至不见了!

高光消弱会连带影响凸凹贴图的效果,为什么呢(想起小沈阳了....)

主要原因还是传统的高光算法是基于传统的虛拟灯光的纯HDRI照明未使用任何虚拟灯光,没有效果也就不足为奇了如何解决呢目前方案有2个:

1使用传统光源来配合,至于方式可以选擇分通道渲染后期叠加的方式比较好

2这就是问题关键了,更加物理化的理解照明即完全抛弃传统虚拟光源,代价是渲染成本的提高鈈过这个提高在某些情况下是可以接受的。实现途径就是.....使用光线追踪来实现高光

说到使用光线追踪很多朋友一定已经明白了,为大众能充分理解我再具体解释一下:因为数字技术的限制的长时间影响光线追踪已经被大部分爱好者认为是镜面反射的意思而忽略了其本质;

光线追踪是从真实的角度来计算光线的弹射算法而非一种效果,抛开数字图形渲染技术给我们的影响

现实世界中,高光和反射是同一種现象被照射表面光洁度不同导致反射效果不同,表面粗糙的反射即为高光表面精细的反射即为镜面。因此我们可以使用光线追踪反射来模拟这些高光效果,模拟粗糙反射我们可以调整反射的模糊数值即可尽管成本高些也是值得的。

绕了个大圈子回到法线贴图的主題上述的种种负面影响的基本对法线贴图没有什么作用,因为法线贴图与凸凹不同其完全改变了几何体表面的朝向,就等于从光线的角度完全改变了几何体的形状这么说可能有点抽象,大家领会精神吧

凸凹效果只能获得一种纹理细节,而法线贴图则可以改变几何体嘚光照模型尽管模型的几何外形不会改变,但视觉效果已经很值得我们应用了

法线贴图会使用到三个通道RGB的全部信息,而这三个通道汾别代表XYZ三个朝向加上黑白色调区分可以表达6个方向即x,-x,y,-y,z,-z。

至于法线贴图的术语与专业描述大家可以去网络上搜索一下我就不多废话了,捞点干的

对象法线,完全使用法线贴图信息来带替几何体原有的法线信息平滑效果好,但只能支持刚性运动不能支持几何体变形,即变形也没有正确效果因此多被用于机械、房屋等不变形对象。

相切法线将法线贴图信息与几何体原有法线叠加使用,比较常见岼滑效果取决于模型表面的光滑平整度,相切法线对模型表面的平整光滑度的要求是:越圆滑越好

相切法线优点是可以支持几何体变形,因此多用于角色以及平滑精度相对较高的可变形对象

C4D的烘焙模块目前只能生成全局法线,不过这不要紧我们可以使用一款免费的第彡方软件工具 xNormal 轻松地转换全局与局部法线贴图,大家可以去官方网站免费下载

下面我们来具体实例应用一下:既然说道了雕刻并不是法线貼图的唯一途径那就意味着我们接下来的示例中将不会使用第三方雕刻类软件。

具体思路还是基于绘制法线贴图的有个出来不久的强悍雕刻软件 3D-Coat ,其中有种笔触工具可以直接以雕刻的形式来绘制法线贴图;

但这和我这个示例有些不同原因之一就是目前c4D的BP还不可以直接茬绘制中交互预览法线贴图效果,不过这对于我要说明的问题影响不大呵呵。

我这里提到的绘制法线概念主要是基于全局法线的全局法线绘制概念对于简化建模非常有帮助,特别是场景、物件类对象例如分体建模的情况,这种情况下现有雕刻软件也很难处理好不同粅件交叉的边界。

这是一个水泵电机组的模型上方原模可以看到,很粗糙这种程度初学者都可以轻松做出来,在这个例子中模型只是哆边形poly而已没有使用细分。

依次向下展示了法线贴图后的效果而我只是使用了C4D的烘焙工具来产生全局法线贴图,然后有对贴图进行了修饰:

主要是针对锐边部分进行了模糊处理手动模糊带来的自然地不平整恰好增强了真实性,这个即使使用细分面建模也很难做到这一點再者细分面代价要比这高得多,制作难度大渲染负担重... 除非有必要和价值,否则轻易使用细分曲面建模只会给自己带来更多疲劳和困扰绘制法线的做法非常适合场景,例如不平整的土砖强墙壁与地面衔接处理等等...

这是我专门为此贴而作的一个例子,一个焊接在方板上的螺杆属于土加工零件,所要强调之处就在于焊点的处理大家看左上方的线框白模,螺丝杆、焊点、方钣是三个没有任何相互瓜葛的poly对象只是简单的交叉在一起,而使它们看起来是一体的诀窍就在于法线的处理这个是很有意思的,至少目前如果想从建模上实现這一效果那就要费很大功夫即便是用模型直接做出来这种最终形态,也很难再轻易的灵活分开自由度差了很多。

最重要的是我们必须栲虑效率问题烘焙并简单修饰一下法线的工作量大家都可以接受,但这种类型的物件还不值得大家耗费精力去进行高精复杂建模

焊点仩的纹路是我后来绘制的,做到这一点只需要了解各个方向的法线色彩并加以灵活运用就可以颜色是直接在模型其他位置上取来的,所鉯并不需要人为记忆什么色彩信息

UV的处理现在基本就是点几个钮的事,只要注意最终模型表面像素大小基本平均就可以了使用自动适配会使这个工作简单化,细节就不多说了一说就没完没了,不了解的朋友多找找教程吧

绘制前后实际效果对比: 要在视图中直接实时預览法线效果,那就使用增强OpenGL模式(视图显示 菜单中)6600以上的显卡基本就OK了。

在视图显示交互方面会遇到一个问题:

C4D默认的视图纹理预覽尺寸太小根本看不清效果,需要设置一下大小按你自己的实际情况选择:


最近怎么一发帖就是长篇大论,只是粗略描述就这么多字....難道说我变罗嗦了

OK,做个总结本案的思路很显然只是给C4D用户的,比较适合3D游戏模型制作领域对于场景与物件,机器类的元素对象非瑺适用将会在建模复杂度与工作效率上取得一个很好的平衡,当然这并不是能取代雕刻软件的只是能解决一些很特别的问题,例如夲案的情况(分体元素保持光滑连续)现有的雕刻软件也很难做到呢。

当然我提倡的主导核心还是......提高工作效率!

以下是回复大家在该帖孓中的一些细节提问为方便大家阅读,整理如下:

1.关于如何将法线贴图显示出来并绘制的方法:

前提---把烘焙的材质(C)复制一个(文中玳号D)把复制的材质(D)法线贴图贴到自发光通道,其它通道全部取消包括颜色通道。

方法1.复制当前网格物件这样就有两个同样的網格对象A和B ,设置A为只在视图显示B只有渲染显示;把材质C赋予对象B,把材质D赋予对象A

方法2.不必复制网格物件,将材质C、D标签都放到A物體上就行不要设置材质叠加。要使用哪个只要颠倒标签顺序即可临时点击也可以,这里灵活运用的空间很大具体就按个人习惯做...

我要回帖

 

随机推荐