位移贴图和法线贴图的区别

戴森球
• 阅读 107

位移贴图和法线贴图都是用于增强模型表面细节和真实感的纹理贴图技术,但是它们之间也存在着差异。

1、什么是位移贴图

位移贴图:位移贴图通过在模型顶点上定义位移值来改变模型表面的形状。该贴图包含了每个像素的高度值信息,使得模型的细节能够更具深度感。位移贴图可以创建出凹凸不平的表面,使得模型看起来更加真实、立体。常见的位移贴图格式包括灰度图、RGB图或RGBA图,其中每个像素值表示对应的位移偏移量。

2、什么是法线贴图

法线贴图:法线贴图存储了每个像素点处表面法线的方向信息。与位移贴图不同,法线贴图并不改变模型的几何形状,而是通过修改模型表面法线的方向来模拟细节。因此,法线贴图可以以较低的多边形数目来实现更真实的表面效果。法线贴图通常使用RGB图像来表示法线方向,其中每个通道分别对应X、Y、Z轴上的法线分量。

3、位移贴图和法线贴图的应用

位移贴图和法线贴图都是常用的纹理贴图技术,被广泛应用于游戏开发、电影特效、建筑可视化等领域。

  • 游戏开发:在游戏开发中,位移贴图和法线贴图可以用于增强模型的真实感和细节表现。例如,在低多边形的角色模型或场景中应用法线贴图可以让其看起来更加详细和逼真,同时不会增加过多的顶点数量和计算负担;而在高精度模型中使用位移贴图可以产生更高质量的凹凸细节效果。
  • 电影特效:在电影特效制作中,位移贴图和法线贴图也被广泛应用于增强场景、角色模型的真实感和细节表现。例如,在渲染皮肤、服装、头发等细节时,使用法线贴图可以让角色模型看起来更加真实,同时不会影响渲染速度;而在渲染高精度模型时,使用位移贴图可以利用纹理贴图的优势,不会增加大量的几何信息。
  • 建筑可视化:在建筑可视化领域,位移贴图和法线贴图也可以用于增强场景、建筑模型的真实感和细节表现。例如,在渲染石材、木材等材质时,使用法线贴图可以让材质看起来更加真实,同时减少几何数据的数量;而在渲染高精度模型时,使用位移贴图可以产生更高质量的细节效果,提升场景的真实感。

    4、位移贴图和法线贴图的效果预览

    大多数的模型都是使用专业的建模软件来设置模型贴图,到是在导出模型的时候,很有可能丢失材质贴图。另外这些工具都是一些专业的建模软件,使用起来有一定的门槛,对于普通的使用者来说是一个比较复杂的事情。这些软件使用前还要安装一些复杂的依赖环境,如果用户只想要为设置一个贴图,那么这些前期的准备工作都会使一部分用户望而却步。

那么有没有其他的工具可以替代这些专业的建模工具来为模型进行贴图呢?当然可以,GLTF 编辑器 就是一款基于web的在线贴图工具,通过这个工具用户只需在浏览器中打开工具简单设置几步就可以为模型设置精美的贴图。

下面我们使用来演示一些位移贴图和法线贴图在模型上的具体体现。首先使用 GLTF 编辑器 打开一个船的模型,这时候船身没有设置任何贴图,效果如下:
位移贴图和法线贴图的区别

我们准备的材质贴图如下:
位移贴图和法线贴图的区别

为船身设置位移贴图,如下:
位移贴图和法线贴图的区别

正如上面的介绍所说,位移贴图对船身产生了一定的影响,船身有一些微小的凹凸。接下来,我们用同样的材质设置发现贴图,如下图:
位移贴图和法线贴图的区别

与位移贴图不同,法线贴图并不改变模型的几何形状,而是通过修改模型表面法线的方向来模拟细节,法线贴图可以以较低的多边形数目来实现更真实的表面效果,船身就像画了一些鸟的图案。

5、总结

从上述可以总结出:位移贴图通过在模型上定义位移值,改变模型的顶点位置来模拟几何细节。而法线贴图则是通过修改模型表面法线的方向来模拟高频细节。

原文链接:https://www.mvrlink.com/the-difference-between-displacement-map-and-normal-map/

点赞
收藏
评论区
推荐文章
Easter79 Easter79
4年前
three.js 显示三维模型(贴图)
<!DOCTYPEhtml<htmllang"en"   <head      <titleid"h2"</title      <metacharset"utf8"      <metaname"viewport"content"widthdevicewidth,user
Wesley13 Wesley13
4年前
UNITY崩坏3角色渲染实践
最近二次元手游,卡通渲染都挺火的。虽然公司没开这类型项目,但是渲染来玩一下也好,原理都是一样,比较简单。在日式卡通中,《罪恶装备》、《崩坏3》的效果都很不错,都是几年前的产品,两者的渲染方式是类似的。这里用的是《崩坏3》的手游模型,仅是学习,侵权必删。shader贴图崩坏3主要用到两张贴图:albedotexilmtex,其中ilmtex,
Wesley13 Wesley13
4年前
Unity渲染教程的GAD中文翻译版本地址。
Unity渲染教程(一):矩阵:http://gad.qq.com/program/translateview/7181958Unity渲染教程(二):着色器基础:http://gad.qq.com/program/translateview/7173930Unity渲染教程(三):使用多张纹理贴图:http://g
Wesley13 Wesley13
4年前
Unity3D学习笔记(十二):2D模式和异步资源加载
2D模式和3D模式区别:背景纯色,摄像机2D,没有深度轴精灵图片设置!(https://oscimg.oschina.net/oscnet/635b7ea2aded8aa3030310e896af36d127f.png)Normalmap,法线贴图,更有立体感Sprite(2DandUI),2D精灵贴图,有两种用途1、当做UI
Easter79 Easter79
4年前
Three.js 地理坐标和三维空间坐标的转换
奇技指南本文作者高峰,360奇舞团前端工程师,W3C性能工作组/WOT工作组成员本文转载自奇舞周刊引言在实现3D地球时,球面是通过地理贴图渲染的。所以我们所说的地理坐标和三维空间坐标的转换,是指将地理贴图上的坐标,转换为球面坐标(https://en.wikipedia.org/wiki/Spherical\_coor
Wesley13 Wesley13
4年前
Unity3D研究院之3种方式播放游戏视频
Unity3D中播放游戏视频的方式有3种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是在GUI层面上播放视频。播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,第三种在手机上播放Handheld.PlayFullScreenMovie。那么本章我们
Wesley13 Wesley13
4年前
Unity展厅模型预处理UV拆分光影烘焙材质后处理特效制作流程【2020】
  应很多读者的要求,本文小姐姐将以一个用户的展厅VR场景为例,详细讲解Unity3d的VR开发在美工阶段的模型预处理、UV2拆分、贴图优化、光影烘焙、后处理与特效制作以及最终作品优化的基本方法和流程,其中涉及BuildinRP(BuildinRenderingPipeline内置渲染管道)、URP(UniversalRenderingPip
Wesley13 Wesley13
4年前
DX9纹理映射
可恶的纹理偏移,一直困惑的事情。最后还是得要试验靠实践出真知:问题:当把1024×1024大小的贴图,通过纹理矩阵变换,取出来其中的一部分区域。然后通过标准QUAD将其绘制到到800×600的表面(backbuffer)。这里的纹理偏移值该是何值才能保证结果绝对正确毫无偏移。以StretchRect的结果为准,经过反
Wesley13 Wesley13
4年前
D3D资源管理
摘要受管贴图(Managedtextures,也就是我们通常所谓的“自动管理贴图”),在DX6中首次被引入,经过一系列的改进和增强,在DX9中自动管理的资源类型增加到贴图,顶点缓冲,顶点索引缓冲,所有这些资源使用统一的公共接口。通过使用D3D资源管理器,应用程序可以轻松的处理设备丢失、处理稍微过量的显存使用。有时开发者在使用受管资源
Stella981 Stella981
4年前
ARKit学习之SCNGeometrySource加顶点、法线、纹理及索引时贴图不正确
1、背景  需求:通过ARKit,让用户拍摄房间时显示挑选的家具或其它模型。  要求:需要感知房间的空间大小,让家具物体贴近现实。2、功能实现  由于公司不是用通用的3D模型obj、dae或者苹果官方的scn文件。  之前对于3D建模知识完全不懂,所以只能摸索有没有更底层的方法。  后面看例子,发现可以用SCN
Wesley13 Wesley13
4年前
Unity项目中的资源管理
这是我在2017金山技术开放日分享的部分内容。从贴图资源格式配置的介绍开始,引申出资源配置工具,最后再谈谈一整套项目资源管理方案。在GitHub上可以获取到资源配置工具的代码,是基于下面理念的一份简单实现。一个3D游戏项目中的资源主要由贴图、模型、动作、声音等组成。模型设计师设计模型,场景由模型组成,角色不仅是一个精致的模型还带了各类的动作,包括走路、跑