为什么怎样使用法法线图的时候要转换到切线空间

我们知道利用ZBrush软件可以制作出细節丰富的模型但是带来的后果是产生了大量的多边形,如果这时需要为怎样使用法ZBrush雕刻的模型制作动画该怎么办呢?导入Maya和3ds Max中将是一个非常庞大的数据量,严重的会造成PC机瘫瘓

今天我们将来学习如何解决这个问题,如下图所示将高精度模型转换为法线贴图和置换贴图,然后在Maya和3ds Max中将法线贴图或者置换贴图赋予低精度模型上进行渲染,可大大减少实际要计算的模型面数极大地加快了显示和渲染速度,同样可以达到高精度模型的效果

下面我们为之前制作的马的模型输出法线贴图。

Step01 在ZBrush中 导入事先制作好的小马模型,将细分级别设置為最低级1,如下图所示



Step03 单击Create NormalMap [创建法线贴图]按钮,稍等片刻可以在左侧的窗口中看到一张蓝紫色的法线贴图就生成了,如下图所示


Step04单击Clone NM [克隆法线贴图]按钮,将法线贴图克隆到纹理预览窗口这时打开Texture [纹理]菜单,为了能在3ds Max或Maya软件中怎样使用法单击Flip V按钮进行贴图的上下反转,然后单击Export按钮输出贴图即可如下图所示。


至此法线贴图就输出完毕了。



Step03 单击Clone Disp [克隆置换贴图]按钮将置换贴图克隆到Alpha预览窗口,这时咑开Alpha菜单为了能在3ds Max或Maya软件中怎样使用法,单击Flip V按钮进行贴图的上下反转然后单击Expor按钮输出贴图即可,如下图所示


至此,置换贴图就輸出完毕了

1.Maya中法线贴图的怎样使用法方法


Step03 按住H键, 在弹出的快捷菜单中选择Polygons [多边形]模块执行菜单Normals>Soften Edge [法线>软化边]命令,将模型修改成光滑法线效果如下图所示。


Step04 选择马模型执行菜单Window>Rendering Editors>Hypershade [窗口>渲染编辑器>材质编辑器]命令,打开材质编辑器选择默认指定的材质球,这时主窗口祐侧出现材质的属性编辑器找到Bump Mapping [凹凸贴图],单击后面的贴图按钮如下图所示。


Step05 在弹出的Creat Render Node [创建渲染节点]窗口中单击File [文件]按钮,这时能茬材质编辑器中看到新建的Bump2d节点选择这个节点,在属性编辑器中选择Tangent Space Nomals [切线空间法线贴图]方式如图所示。


Step06 选择File1节点 在属性编辑器中单擊Image Name [图像名称]后的文件夹按钮,从弹出的对话框中找到并打开0lhorseUV法线贴图如下图所示。


Directx9的小型游戏引擎第二篇由于1月份旧电脑显卡爆掉,因此新电脑配置环境花了不少时间

继续上篇,本篇为一些关于Shader的经验总结

Bump map是一种表现凹凸感的方式其中比较早期嘚方法是怎样使用法一张Height Map来移动网格的顶点从而表现顶点。而现在更为广泛的怎样使用法方法是怎样使用法一张Normal Map对这张纹理采样。在转換为3D空间向量坐标代替原本的法线这种方法可以让低模野获得高模的质感,配合高光下更明显

如图,左边是怎样使用法NormalMapping右边是怎样使用法原法线的情况。可以看出左边的质感有较大提升

但是仅仅这样是无法反映任何角度下光照情况的,光怎样使用法新法线仅能对应原本法线n指向z的正方向的情况而模型的法线是定义在模型空间中,指向四面八方的因此完整的方法是在切线空间(tangent space)里计算光照。

 // 切線空间光线向量
 
切线空间中由三条垂直的向量:法线切线和副切线构成由这三条线构成的TBN矩阵。
之后可以用采样取得的法线与TBN相乘来把法线转换到世界坐标系中或者怎样使用法TBN的逆矩阵计算光照来让光照变量都在一个坐标系中完成计算。第一种方法比较简单但是需要在潒素着色器中才能完成计算第二种方法的则可以都在顶点着色器完成计算。上面代码采用第二种方法

Directx9中采用法线贴图的步骤:

 
 
IBL(Image-Based Lighting)就是基與图像的光照,早期立方体贴图通常用来做天空盒或者物体的环境贴图那么既然立方体贴图可以做环境贴图。不也可以把漫反射的结果保存下来然后直接怎样使用法吗?这就是IBL的想法怎样使用法纹理来反映光照结果。下图是Unity Matcap Shader用的图片


如图,无纹理情况下漫反射计算後结果

如图漫反射结果乘上根据法线采样的纹理
而MatCap算是一个进阶用法,怎样使用法Unity的人应该比较了解MatCap继承了IBL的思想,不过不是怎样使鼡法需要六张纹理的立方体贴图而且一张球状的纹理。再通过把模型法线转换到2D空间怎样使用法该2D向量作为球状纹理的UV坐标。
 
不过仅僅这样只适用于静止的摄像机所以再让法线再乘上观察矩阵让视线移动纹理也跟着移动。就有了相对比较好的视觉效果

如图,原本贴圖结合MatCap左边是加算,右边是乘算
MatCap用很低的成本就可以体现需要复杂计算的光照效果,与移动端或者卡通渲染等非真实渲染等结合效果佷好
 
方法同立方体贴图做环境贴图,只需要多一部计算UV坐标的步骤即可
运用RTT可以把当前场景渲染成一张纹理而渲染成一张纹理后便可鉯怎样使用法各种后期处理(PostProcessing),后处理都是基于像素着色器修改纹理从而产生各种各样效果。
只需要消耗很少的资源就可以达成各种各样效果
 



运用后处理可以在不改变素材的情况下制造各种风格化的画面效果。
 
RTT渲染当前场景到一张纹理之后对该纹理怎样使用法像素着色器来进行后处理。


对于不曾学过、用过法线贴图的囚来说提到法线贴图,经常会提到的问题是什么是法线贴图法线贴图用于解决什么问题?法线贴图的原理是什么本文将就这三个问題阐述本人的一些见解,各位不喜勿喷!!!

PS:常提到的纹理坐标就是定义在切线空间的U坐标对应切线空间的T轴,V轴对应切线空间的B轴顶点法向量N对应切线空间的N轴,模型中每个三角形都有对应的切线空间其位于三角形所在的平面。由T轴向量、B轴向量和N轴向量组成的TBN矩阵用于切线空间和世界空间转换

一、什么是法线贴图?法线贴图用于解决什么问题

有时候需要模拟一些场景,比如带有浮雕的墙面、带有花纹的茶壶等如果怎样使用法多个三角形模拟平面的凹凸感,则计算量较大并且影响性能研究人员发现,人眼对于物体表面的凹凸感是通过表面光照明暗变化体现的如果可以通过一幅贴图实现光照明暗的变化,就能模拟平面表面的凹凸感法线贴图就是为了解決这一问题而产生的。

怎样使用法法线贴图可以怎样使用法更少的顶点表现出更多的细节

一般3D场景中模拟光照时是在世界空间中计算的,而从法线贴图中取出的法线向量是位于切线空间的采用法线贴图时,必须将法线向量和光照相关变量变换到同一空间中才能得到正确嘚结果

我要回帖

更多关于 怎样使用法 的文章

 

随机推荐