凹凸贴图和法线贴图的渲染效果对比

news2024/12/23 2:05:42

1、什么是凹凸贴图

  凹凸贴图(bump mapping)是一种计算机图形学中的渲染技术,用于在给定的表面上模拟微小的凹凸纹理。通过在表面法线方向上微调每个像素的光照值,可以给平滑的表面增加视觉上的凹凸感。

  在凹凸贴图中,每个像素点都包含了一个法线向量,表示该点表面的方向。这些法线向量通常以纹理的形式存储在一个称为凹凸贴图的二维图像中。渲染过程中,根据法线向量的信息,调整每个像素的光照计算结果,使得光线在表面上的反射看起来产生微小的凹凸效果。

  凹凸贴图可以用于增加物体的细节和真实感,例如在石头、皮肤、织物等表面上模拟出凹陷和凸起的纹理效果。这种技术可以通过在三维建模软件中创建凹凸贴图,或者通过在渲染过程中动态生成凹凸贴图来实现。

  需要注意的是,凹凸贴图只是一种视觉上的效果,不改变实际的物体几何形状。它是一种节约计算资源的技术,能够在不增加多边形数量的情况下,为平滑的表面增添细节。

2、什么是法线贴图

  法线贴图(normal mapping)是一种计算机图形学中的贴图技术,用于在平坦表面上模拟出凹凸纹理的效果。通过为每个像素点提供一个法线向量,法线贴图可以使得渲染的物体表面看起来具有细致的凹凸感。

  在法线贴图中,每个像素点都包含了一个法线向量,代表着该点表面的方向。这些法线向量通常以纹理的形式存储在一个称为法线贴图的二维图像中。渲染过程中,根据法线贴图中的法线信息,调整每个像素的光照计算结果,使得表面的法线向量发生变化,从而呈现出凹凸的纹理效果。

  与凹凸贴图相比,法线贴图能够提供更加精细和真实的凹凸效果。它可以用于模拟各种材质的凹凸纹理,例如石头、木材、金属等。法线贴图通常由专业的三维建模软件生成,并与模型的纹理贴图一起使用。

  需要注意的是,法线贴图只是一种视觉上的效果,不改变实际的物体几何形状。它是一种在渲染过程中模拟细节的技术,可以增强物体的真实感和细节感。

3、凹凸贴图和法线贴图效果对比

  下面我将使用GLTF编辑器来展示凹凸贴图和发现贴图有那些不同。

  打开GLTF 编辑器 ,在编辑器导入一个GLB格式的飞机模型,如图所示:

  我们用GLTF 编辑器 为飞机翅膀的设置凹凸贴图,操作步骤:1、在场景中选中飞机的机身,右侧会弹出材质设置面板;2、在面板中找到凹凸贴图设置组件,直接上传材质贴图即可(材质贴图提前制作好,保存到本地),效果如下图:

GLTF 编辑器  对机身的凹凸贴图效果

  看起来似乎问题不大。

  再来看一下法线贴图:

GLTF 编辑器  对机身法线贴图的效果

  可以看到机身已经有些变形了,这是为什么呢?

  法线贴图不会直接导致模型的几何形状发生变形。然而,当使用法线贴图时,渲染过程中对顶点法线的计算可能会造成一些视觉上的变形。

  在使用法线贴图时,顶点的法线通常是根据模型的初始几何信息计算得出的,然后通过插值来确定其在表面上的准确位置。然而,由于法线贴图的作用,光照计算过程中使用了法线贴图中的法线信息,从而使得表面的光照效果具有了凹凸感。

  这种计算过程中的插值和法线的变换会导致一些视觉上的变形效果。特别是在模型的曲面、棱角或细微细节处,由于顶点之间法线的插值,可能会出现一些平滑的过渡或细节损失的情况。这样的变形通常在离模型较近的观察距离下更为显著。

  为了尽量减少法线贴图引起的模型变形,可以采取一些优化策略,如增加模型的顶点密度、使用更高分辨率的法线贴图、调整插值算法或使用其他的几何细节增强技术。同时,对于特定的场景和情况,也可以考虑使用其他的贴图技术或更复杂的几何模型来实现更精确的效果。

4、总结

  凹凸贴图(Bump Mapping)和法线贴图(Normal Mapping)都是计算机图形学中常用的纹理映射技术,用于模拟表面的凹凸效果。它们在实现上有一些区别:

工作原理:

  • 凹凸贴图:凹凸贴图通过修改像素点的法线向量,改变光照计算结果来模拟凹凸效果。它通过一张灰度图(灰度值代表高度信息)和模型的法线向量进行计算。根据灰度图中像素的灰度值,调整法线向量的方向和强度。
  • 法线贴图:法线贴图通过提供每个像素点的法线向量,直接影响光照计算结果。每个像素点的法线是由一张RGB纹理图像表示的。在渲染过程中,法线贴图中的法线向量被用来调整每个像素的光照计算结果,以产生凹凸效果。

精度和细节:

  • 凹凸贴图:凹凸贴图能够模拟比较复杂的凹凸效果,可以通过灰度图的不同灰度值来控制不同细节级别的凹凸程度。但相对于法线贴图,它的细节精度稍低。
  • 法线贴图:法线贴图能够提供更高的细节精度,能够模拟更真实的表面纹理。每个像素点的法线信息都能够精确地指定其表面的方向,使得渲染结果更加细致和精确。

实现复杂度:

  • 凹凸贴图:凹凸贴图的实现相对较简单,只需要一张灰度图和法线向量的计算即可。它在性能方面也相对较高效。
  • 法线贴图:法线贴图的实现复杂度相对较高,需要生成并存储每个像素点的法线信息,同时渲染时需要对每个像素进行法线计算。这样会增加内存占用和渲染开销。

  总的来说,凹凸贴图适用于一些简单的凹凸效果,而法线贴图则更适合提供更高精度和真实感的凹凸纹理效果。根据具体使用场景和需求,可以选择合适的贴图技术来达到期望的视觉效果。

  

原文链接:凹凸贴图和法线贴图的区别 (mvrlink.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1045873.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“押宝高手”乐视视频再出手,看中商业传奇剧《大盛魁》

作为最早开始版权采购的长视频平台,乐视视频一向擅长“押宝”优质内容。从《甄嬛传》到《白鹿原》等,乐视拿下了众多经典古装剧、年代剧的版权。 9月,乐视视频再次出手拿下的历史传奇剧《大盛魁》开始热播。该剧由王新民导演执导&#xff0c…

如何开始着手一篇Meta分析 | Meta分析的流程及方法

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

CMake、QMake和编译器的关系

目前这是小编理解的关系,在window中使用到GCC编译器的变体之后,为了方便编译,qt就使用了qmake,而CMake相比qmake更加强大,目前小编在VS中用于生成vs项目工程。 小编理解应该不是很透彻,如果有人看出问题&am…

layui+java spring 实现图片文件新增到数据库

项目场景&#xff1a; layuijava spring 实现图片文件新增到数据库 解决方案&#xff1a; 1.首先layui是个不再更新的网址有想了解的可以浏览官网 表格组件 table - Layui 文档 2.官网内有专门的组件 代码直接粘过来即可 <!DOCTYPE html> <html> <head> …

【IDEA】idea恢复pom.xml文件显示灰色并带有删除线

通过idea打开spring boot项目后&#xff0c;发现每个服务中的pom.xml文件显示灰色并带有删除线&#xff0c;下面为解决方案 问题截图 解决方案 打开file——settings——build,execution,deployment——Ignored Files&#xff0c;把pom.xml前面的复选框去掉&#xff0c;去掉之…

Java反编译工具JD-GUI使用记录

1.下载JD-GUI https://www.onlinedown.net/soft/70298.htm​​​​​​https://www.onlinedown.net/soft/70298.htm 2.启动JD-GUI 进入JD-GUI目录下&#xff0c;dos窗口执行java -jar .\jd-gui.exe&#xff0c;就会弹出工具框&#xff0c;左上角打开项目jar包&#xff0c;即可…

关于汽车维修类中译英的英语翻译

随着全球汽车行业的不断发展&#xff0c;国际化程度的深化使得汽车产业的多语言交流需求日益旺盛&#xff0c;所以汽车翻译及本地化服务的重要性愈发凸显。那么&#xff0c;如何才能做好汽车翻译呢&#xff1f;汽车维修类英语翻译又有哪些要求呢&#xff1f; 我们知道 &#xf…

【机器学习 | 非线性拟合】梯度下降 vs SLSQP算法,谁更胜一筹? 解决六个数据点的非线性拟合难题,挑战非线性拟合问题

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

Selenium —— 网页frame与多窗口处理!

一、多窗口处理. 1.1、多窗口简介 点击某些链接&#xff0c;会重新打开⼀个窗⼜&#xff0c;对于这种情况&#xff0c;想在新页⾯上操作&#xff0c;就 得先切换窗⼜了。 获取窗⼜的唯⼀标识⽤句柄表⽰&#xff0c;所以只需要切换句柄&#xff0c;就可以在多个页⾯灵 活操作了…

react项目优化

随着项目体积增大&#xff0c;打包的文件体积会越来越大&#xff0c;需要优化&#xff0c;原因无非就是引入的第三方插件比较大导致&#xff0c;下面我们先介绍如何分析各个文件占用体积的大小。 1.webpack-bundle-analyzer插件 如果是webpack作为打包工具的项目可以使用&…

20个提升效率的JS简写技巧,告别屎山!

JavaScript 中有很多简写技巧&#xff0c;可以缩短代码长度、减少冗余&#xff0c;并且提高代码的可读性和可维护性。本文将介绍 20 个提升效率的 JS 简写技巧&#xff0c;助你告别屎山&#xff0c;轻松编写优雅的代码&#xff01; 移除数组假值 可以使用 filter() 结合 Bool…

东郊到家app小程序开发,上门按摩系统优势

东郊到家APP小程序开发 随着生活节奏的紧张&#xff0c;原本的逛菜市场&#xff0c;现在都是网上下单&#xff0c;现在互联网服务都已经融入到人们生活的各个方面 一、上门按摩预约系统的优势 1、高效 一键预约系统只需保存用户信息&#xff0c;以后只需一键预约即可完成。 2、…

分享一下怎么搭建公众号积分商城小程序

随着微信小程序的日益普及&#xff0c;越来越多的商家开始利用微信公众号和小程序进行营销推广。其中&#xff0c;搭建公众号积分商城小程序是一个非常受欢迎的选择。通过积分商城小程序&#xff0c;商家可以吸引更多的用户关注&#xff0c;提高品牌知名度&#xff0c;促进销售…

三门问题-Swift测试

三门问题&#xff08;Monty Hall problem&#xff09;亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论&#xff0c;大致出自美国的电视游戏节目Lets Make a Deal。问题名字来自该节目的主持人蒙提霍尔&#xff08;Monty Hall&#xff09;。 参赛者会看见三扇关闭了的门&#xf…

Camera Metadata跨进程传递

google camera2的参数设置都是通过CaptureRequest来设置的&#xff0c;相关的对象都实现了Parcelable接口才能进行跨进程传递。 一、整个Metadata的传递 1、CameraDeviceImpl.java 无论是capture还是repeating都会调用到下面的 submitRequestList 方法 mRemoteDevice就是Cam…

得物API元数据中心探索与思考

一、背景 目前市面上针对API的管理平台很多&#xff0c;但由于各种客观因素&#xff0c;这些平台的功能都更多聚焦在API文档的消费侧。而对于API文档的生成都非常依赖开发人员的手动创建&#xff0c;很难保障文档的实时性和有效性。市面上常见的API管理平台&#xff0c;由于缺…

【C++】笔试训练(二)

目录 一、选择题二、编程题1、排序子序列2、倒置字符串 一、选择题 1、1. 使用printf函数打印一个double类型的数据&#xff0c;要求&#xff1a;输出为10进制&#xff0c;输出左对齐30个字符&#xff0c;4位精度。以下哪个选项是正确的&#xff1f; A %-30.4e B %4.30e C %-3…

zookeeper mac安装

目录 1.下载zookeeper安装包 2.解压安装包 3.修改配置文件 4.启动服务端 5.启动客户端 这边工作中用到了zookeeper组件&#xff0c;但自己独立安装弄的不太多&#xff0c;这边本机mac装一个做测试使用 以下是安装记录&#xff0c;可以作为参考 从以下链接zookeeper版本列…

【二】xxl-job 源码分析

xxl-job 源码分析 简介&#xff1a;阅读优秀的开源项目源码总是一件让人激动的事情&#xff0c;分布式调度平台xxl-job我们在生产环境也是有了很多的实践应用&#xff0c;一款产品使用久了对其实现原理多少有些了解了&#xff0c;今天也是抽出整块的时间来认真分析一下xxl-job的…

RFID技术:钢条加工现场的智能化管理利器

RFID技术&#xff1a;钢条加工现场的智能化管理利器 RFID&#xff08;Radio Frequency Identification&#xff09;技术作为一种非接触式自动识别技术&#xff0c;近年来在工业领域得到广泛应用。本文将探讨RFID在钢条加工现场的应用&#xff0c;包括材料追踪与管理、生产过程…