什么是法线贴图?法线贴图(Normal mapping)是可以应用到3D模型表面的特殊纹理,不同于以往的纹理只可以用于2D表面。作为凹凸纹理的扩展,它包括了每个像素的高度值,内含许多细节的表面信息,能够在平平无奇的物体上创建出许多特殊的立体外形,然而这些立体外形是通过使用光线和该点法线角度来表示,这也就意味着如果将一个贴图上所有点的法线记录起来的话,就不难再利用这些信息实现后期的假凹凸效果了。记录
原理和概念
法线是一个向量(x,y,z),每一个顶点都有一个法线,用一个纹理去存储的话,那就是(r,g,b),由于法线是垂直于一个面的,对于2d图片来说,那他的z值就是1
用一张纹理来存储法线的值,法线的xyz方向取值是【-1,1】,而rgb的取值是【0,1】,所以这里有一个转换rgb = (normal+1)/2=0.5*normal+0.5
转载
2024-03-18 00:05:02
345阅读
写在前面
有很多情况你可能想要使用法线去影响反射效果。比如,你想要模拟一个被霜雪覆盖的玻璃材质的表面,或者一个冰块。如果你根据物理知识真实的模拟这个平面的每一个细节部分,那么你就不要希望你游戏的FPS还可以达到60帧了。相反的,我们可以使用法线贴图来伪造一个视觉体验,因此我们需要学习如何将法线贴图的信息传递给反射效果。 为了完成这个任务,我们将要学习Input结构体的另一个内置
转载
2024-08-26 20:49:22
53阅读
总结起来有两个,一个是基本的转换,单纯的模型空间转换到世界空间,第二个是需要法线贴图时(Bump Textrue)的时候就转换到切线空间下进行计算。1.从“模型空间”到“世界空间”(Object To World):(1)方法1,使用和“顶点”到“世界”变换矩阵的“逆转置矩阵“对法线进行相同的变换,因此先得到顶点的模型到世界的变换矩阵的“逆矩阵”(Unity_WorldToObject
转载
2024-09-13 12:56:22
96阅读
概念1.通过改变法线的方向,间接的影响光照2.法线贴图是将法线的方向转换成color储存在贴图的每个像素里3.法线的方向每个分量的值是-1-1,贴图的color值是0-1向量换算成color每个分量 (normal+1)/2,color换算成法线就 (pixel*2-1)法线贴图储存法线的空间既然法线贴图像素储存的是法线,那处于那个坐标空间呢贴图里储存那个空间的法线都是可以的,为什么都
转载
2024-03-31 19:23:25
80阅读
首先我们在Unity中创建一个小球然后通过"Create->Shader->Standard Surface Shader"创建一个表面着色器,并修改名字为Diffuse Bump然后通过"Create->Material"创建一个材质,并修改名字为MaterialDiffuseBump,材质使用的shader指定为我们刚创建的Diffuse Bump下面是Shader代码:Sh
转载
2024-04-02 16:14:23
87阅读
什么是法线贴图技术呢?这是一种用来实现3D效果的一种技术,要想理解这种技术还请您听我慢慢道来。如何利用贴图实现凹凸效果呢? 可行的方法就是将这个平面用一个贴图覆盖,用贴图的纹理实现一定的凹凸效果。但是这种方法实现的效果并不是很好,因为如果视角一变化,看起来就会像一张简单的画有图案的平面了。 后来,聪明的游戏开发者想出了一种方法,就是在贴图过程中对贴图进行一定的处理,从而保证了在视角变换以后仍然
转载
2024-04-25 13:22:27
52阅读
简介以前经常听说“模型不好看啊,怎么办啊?”答曰“加法线”,”做了个高模,准备烘一下法线贴图”,“有的美术特别屌,直接画法线贴图”.....法线贴图到底是个什么鬼,当年天真的我真的被这个图形学的奇淫杂技忽悠了,然而毕竟本人还算有点刨根问底的精神,决定研究一下法线贴图的原理以及Unity下的实现。本人才疏学浅,如有错误,欢迎指正。 法线贴图是目前游戏开发中最常见的贴图之一。我们知道,一般情况下,模型
为何要用法线贴图为了提升模型表现细节而又不增加性能消耗,所以不选择提高模型的面数,而是给模型的材质Shader中使用上法线贴图(Normal Map),通过更改模型上的点的法线方向,增加光影凹凸效果,从而提升模型表现细节。使用法线贴图能使一个三角面(平面)表现出凹凸的视觉效果!法线贴图原理上面的文章解释了很多问题:法线被存储在切线空间(Tangent Space Normal)中,切线空间以点的法
转载
2024-04-28 09:36:06
260阅读
文章目录自言自语效果面板GIF演示 (错误效果版 稍晚些时候回家再更新修改过代码的正确效果版)正确效果版C#部分shader部分 自言自语此次学习基于深度法线纹理的边缘检测 法线此效果 只能对正确设置了渲染顺序的物体生效 即 “Queue”=“Geometry” 所以并不适合正式项目。 且发现做片段着色器中,插值控制参数 非1即0,但比较方法中的细节参数 却能影响描边效果 不解为何 。 按我的理
用于学习《Unity Shader 入门精要》过程记录 注意点:1.声明贴图属性变量同名称变量 name_ST,存放贴图的缩放、平移信息2.从法线贴图中获取法线的向量信息,在将向量信息转换至空间单位向量3.法线向量信息参与漫反射颜色和光照颜色的计算在场景中添加一个球体,将法线贴图Shader值给其Material,具体效果如下图TexMain/TexBump&nb
转载
2024-07-24 11:17:52
295阅读
前几天在搞一个Voxel的项目,盒子的表现不美观,于是想给Voxel加上法线增强盒子的立体效果,给shader里加了法线,但是显示出来法线效果不对,绕了很大一圈。 一开始怀疑是法线方向不对,法线反了就看不到啊,应该也没反。 UV顺序不对吗?UV没顶点重合不会看不到。 后来才发现MagicVoxel For unity的包是没有切线数据的,没切线数据无法正确显示。切线的描述:Mesh.tangent
本节书摘来自华章出版社《Unity着色器和屏幕特效开发秘笈(原书第2版)》一书中的第2章,第2.6节,作者 [英]艾伦朱科尼(Alan Zucconi) [美]肯尼斯拉默斯(Kenneth Lammers),更多章节内容可以访问云栖社区“华章计算机”公众号查看2.6 法线映射三维模型中的每一个三角形都有一个面朝方向(facing direction),顾名思义指的是三角形的朝向。这个方向通常用一个
转载
2024-08-19 15:00:07
84阅读
一、简介 法线贴图是凸凹贴图(Bump mapping)的一种常见应用,简单说就是在不增加模型多边形数量的前提下,通过渲染暗部和亮部的不同颜色深度,来为原来的贴图和模型增加视觉细节和真实效果简单原理是在普通的贴图的基础上,再另外提供一张对应原来贴图的,可以表示渲染浓淡的贴图。通过将这张附加的表示表面凸凹的贴图的因素于实际的原贴图进行运算后,可以得到新的细节更加丰富富有立体
转载
2024-04-08 08:34:09
214阅读
再游戏中,渲染多面是比较消耗性能的,法线贴图可以让在一张平面图片上面模拟出凹凸的效果首先看下wiki上的解释:在三维计算机图形学中,法线贴图(英語:Normal mapping)是一种模拟凹凸处光照效果的技术,是凸凹贴图的一种实现。法线贴图可以在不添加多边形的前提下,为模型添加细节。常见的使用场景是为低多边形模型改善外观、添加细节,此时的法线贴图一般根据高多边形模型或高度贴图(英语:H
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,特邀编辑,畅销书作者;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。游戏画面中的美术品质对产品来说非常重要,这决定了产品是否能吸引玩家。美术品质的好坏主要体现在材质的渲染上,材质的渲染不仅是美术的事情也是程序的事情,二者要互相配合才能得到想要的效果。本篇博客主要介绍的是材质的法线渲染
接下来我们在3ds Max里面制作Normal Map (法线贴图),将低模和高模分别命名为:low-model和high-model,然后将导出的低模UV 分好,高模不用分UV。
图22 接着把高模和低模适配到一起图23 高模和低模匹配好以后,在Max菜单栏里找到Rendering 展开并选择Render To Texture。图24 接下来的操作是: 展开General S
法线贴图一般用于计算光照。可以表现更多的细节。法线贴图:一般根据高多边形模型或者高度图生成。一、法线详解法线图的存储一般分为在切线空间和模型空间。
转载
2024-10-18 13:32:29
97阅读
法线贴图是一种在低模上模拟高模的效果的技术。这是维基对它的介绍。 法线贴图类似凹凸贴图的升级版,凹凸贴图记录了物体表面凹凸的情况,法线贴图记录了物体表面凹凸的光照信息。光照信息即是入射光与法线的夹角信息。 为了提高性能,模型的面数越少越好,很多细节的东西都是用贴图去弥补。但是光照是基于顶点去计算的,这样高光阴影等光照的表现就不够真实。于是前辈们发明了法线贴图这个办法,用贴图记录表面的光照信息,也就
转载
2024-08-29 17:36:25
64阅读
://blog..net/huazai434/article/details/5650146一,法线贴图实际上是一张纹理图,但纹理中存储的并不是颜色值,而是法向量坐标。这项技术的主要目的是实现物体表面的粗糙细节。二,法向量在纹理中的存储形式。对于24位纹理
转载
2013-11-21 17:31:00
374阅读