位移贴图、凹凸贴图和法线贴图之间的差异

在线工具推荐: 3D数字孪生场景编辑器  -  GLTF/GLB材质纹理编辑器  -  3D模型在线转换  -  Three.js AI自动纹理开发包  -  YOLO 虚幻合成数据生成器  -  三维模型预览图生成器  -  3D模型语义搜索引擎

这三种类型的贴图中的每一种都会在几何体表面上创建看起来像其他分辨率或细节的东西。这些细节有些是真实的,有些则不是。在本文中,我们将深入研究这三张地图中的每一张,并了解每张地图的作用和不作用。您还将更好地了解每种类型的优点和缺点。

GLTF 编辑器 -NSDT 是一款专门用于3D模型纹理贴图的工具,它支持3D模型各种材质纹理贴图的编辑修改,包括:颜色、粗糙度、金属度、贴图、顶点颜色、
自发光贴图、透明贴图、凹凸贴图、法线贴图、位移贴图、粗糙贴图、金属贴图、
光照贴图、透明度等。

在使用GLTF 编辑器 -NSDT 在线工具前,我们先学习下位移贴图、凹凸贴图和法线贴图之间的差异。

什么是凹凸贴图?

凹凸贴图使用计算机图形在 3D 模型的表面上创建深度和纹理的错觉。纹理是使用灰度和简单的照明技巧在物体表面上人工创建的,而不必手动创建单个凸起和裂缝。

凹凸贴图实际上是我们今天要介绍的旧地图类型之一。关于凹凸贴图,您应该了解的第一件事是它们创建的细节是假的。由于凹凸贴图,不会向模型添加额外的分辨率。通常,凹凸贴图是限制为 8 位颜色信息的灰度图像。只有 256 种不同颜色的黑色、灰色或白色。

凹凸图中的这些值基本上用于告诉 3D 软件两件事。向上或向下。当凹凸贴图中的值接近 50% 的灰度时,表面上几乎没有细节。当值变亮并逐渐变白时,细节似乎会从表面拉出。与此形成鲜明对比的是,当值变暗并接近黑色时,它们似乎正在向表面推进。

用于在地形上创建细节的凹凸贴图

凹凸贴图的好处

凹凸贴图非常适合在模型上创建微小细节。例如,皮肤上的毛孔或皱纹。考虑到您只是使用灰度值,它们在 Photoshop 等 2D 应用程序中创建和编辑也相对容易。

凹凸贴图的局限性

凹凸贴图的问题在于,如果相机从错误的角度查看它们,它们很容易损坏。由于他们创建的细节是假的,而不是添加的真实分辨率,因此应用凹凸贴图的几何体的轮廓将始终不受贴图的影响。

什么是法线贴图?

法线贴图可以被认为是一种更新、更好的凹凸贴图类型。与凹凸贴图一样,关于法线贴图,您需要了解的第一件事是它们创建的细节也是假的。场景中的几何体没有添加额外的分辨率。

最后,法线贴图确实会在模型表面上产生深度细节的错觉,但它的效果与凹凸贴图不同。正如我们已经知道的,凹凸贴图使用灰度值来提供向上或向下的信息。法线贴图使用与 3D 空间中的 X、Y 和 Z 轴直接对应的 RGB 信息。此 RGB 信息告诉 3D 应用程序每个多边形的表面法线方向的确切方向。曲面法线的方向(通常简称为法线)告诉 3D 应用程序应如何着色多边形。

在学习法线贴图时,您应该知道有两种完全不同的类型。在 2D 空间中查看时,这两种类型看起来完全不同。最常用的称为切线空间法线贴图,主要是紫色和蓝色的混合物。这些贴图最适合在动画过程中必须变形的网格。切线空间法线贴图非常适合角色等内容。对于不需要变形的资源,通常使用对象空间法线贴图。

法线贴图使用 RGB 值定向曲面法线

法线贴图的好处

这些地图具有不同颜色的彩虹,并且与切线空间地图相比,性能略有提高。在考虑使用法线贴图时,您肯定需要注意一些事项。

法线贴图的局限性

但是,编辑这些类型的地图也有一些例外。例如,MARI能够绘制我们在法线贴图中看到的表面法线信息的类型。在支持方面,法线贴图很好地集成到大多数管线中。与凹凸贴图不同,此规则也有例外。其中之一就是手机游戏设计。直到最近,硬件才发展到移动游戏开始在其管道中采用法线映射的地步。

什么是位移图?

置换贴图在物理上会位移(顾名思义)应用它们的网格。为了基于位移贴图创建细节,通常必须对网格进行细分或镶嵌,以便创建真实的几何图形。

置换贴图的伟大之处在于,它们实际上可以从高分辨率模型烘焙或手工绘制。与凹凸贴图一样,置换贴图由灰度值组成。

置换贴图和凹凸贴图可以协同工作以添加纹理

位移图的优点

在为低分辨率网格创建更多细节时,置换贴图是王道。虽然可以使用 8 位置换贴图,但使用 16 位或 32 位置换贴图几乎总是会获得更好的结果。虽然 8 位文件在 2D 空间中可能看起来不错,但当导入 3D 时,它们有时会由于值范围不足而导致条带或其他伪影。

位移图的极限

现在,这是关于位移图的不太好的事情。实时创建所有这些额外的几何图形对您的系统来说是非常困难和困难的。因此,大多数 3D 应用程序在渲染时计算最终的置换结果。

与凹凸贴图或法线贴图相比,置换贴图也会为您的渲染增加大量时间。由于这种额外的几何形状,很难击败置换贴图的结果。由于曲面实际上被修改了,因此轮廓反映了额外的几何图形。在决定使用置换贴图之前,应始终权衡置换贴图的费用与附加收益。

同时使用凹凸贴图、法线贴图和置换贴图

在某些情况下,可以将凹凸贴图或法线贴图与同一资产上的置换贴图组合在一起。最好的方法是利用位移来对几何形状进行重大更改,然后使用法线或凸起来处理精细细节。无论您选择使用哪种贴图,了解每种贴图的工作原理以及它的优势和劣势只会让您更容易做出决定。

 转载:位移贴图、凹凸贴图和法线贴图之间的差异 (mvrlink.com)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniApp中uView组件库的丰富布局方法

目录 基本使用 #分栏间隔 #混合布局 #分栏偏移 #对齐方式 API #Row Props #Col Props #Row Events #Col Events UniApp的uView组件库是一个丰富的UI组件库,提供了各种常用的UI组件和布局方法,帮助开发者快速构建美观、灵活的界面。下面给你写一…

(windows2012共享文件夹和防火墙设置

windows2012共享文件夹和防火墙设置 1.windows2012文件夹共享1.共享和高级共享的区别![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0d815cc6862a4c7a99be11442fb5d950.png#pic_center) 2.windows的防火墙设置1.防火墙设置8080端口让tomot可以在主机可以访问1.新建…

Switch语句与链接—计算机系统基础

实验内容:修改二进制可重定位目标文件“phase1.o”中相关节的内容(注意不允许修改.text节和重定位节的内容),使其与main.o模块如下链接后运行时输出目标字符串“123456789” gcc -no-pie -o linkbomb main.o phase1.o ./linkbomb…

Pandas的datetime数据类型

Python的datetime对象 Python内置了datetime对象,可以在datetime库中找到 from datetime import datetime now datetime.now() now 还可以手动创建datetime t2 datetime(2023,4,21) now-t2 # datetime.timedelta(days251, seconds31427, microseconds546921)将…

C# WPF上位机开发(MVVM模式开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 学习过vue的同学都知道mvvm这个名词。从字面上理解,可能有点拗口,但是我们可以去理解一下它的优点是什么。mvc相信大家都明…

生产系统稳定上线600天!中国联通CUDB for OceanBase的开源共建和规模化应用

中国联通软件研究院架构部平台承载了上千应用的数据库需求,并且现存大量数据库使用过程缺少规范、缺少监控,同时还存在着数据库核心技术相关风险。为了实现核心技术自主可控,及时为用户解决线上问题、满足用户的功能需求,提供物美…

GIT提交、回滚等基本操作记录

1、add文件时warning: LF will be replaced by CRLF in .idea/workspace.xml. 原因:windows中的换行符为 CRLF, 而在Linux下的换行符为LF,所以在执行add . 时会出现以下提示 解决:git config core.autocrlf false 2、GIT命令&…

【数据库系统概论】第4章-数据库安全性

复习用,别看了 文章目录 4.1 计算机安全性概述4.2 数据库安全性控制4.2.1 用户标识和鉴定4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 数据库角色4.2.5 强制存取控制 4.3 视图机制4.4 审计4.5 数据加密4.6 其他安全性保护 4.1 计算机安全性概述 不安全因素 4.2 …

gin框架使用系列之五——表单校验

系列目录 《gin框架使用系列之一——快速启动和url分组》《gin框架使用系列之二——uri占位符和占位符变量的获取》《gin框架使用系列之三——获取表单数据》《gin框架使用系列之四——json和protobuf的渲染》 一 、表单验证的基本理论 在第三篇中,我们介绍了如何…

linux系统 CentOS Tomcat 部署论坛

jdk安装命令:yum -y install java-1.8.0-openjdk-devel.x86_64 结尾上显示下图为成功 检查jdk环境是否配置成功命令:java -version或javac 显示版本 显示信息 mysql安装: 检查是否存mariadb数据库:rpm -qa | grep mariad 卸载ma…

Elasticsearch中复制一个索引数据到新的索引中

问题 我有时候,需要调试一个已经存在的ES索引,需要从已有的索引复制数据到新的索引中去。 解决 这里我借助一个GUI工具,来解决这个问题,底层它是使用Reindex的API实现索引数据复制的。利用Reindex API搞不定这个事情&#xff0…

【MATLAB】PSO粒子群优化BiLSTM(PSO_BiLSTM)的时间序列预测

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 基于PSO粒子群优化的BiLSTM的时间序列预测算法的基本原理如下: 「双向长短时记忆(BiLSTM)模型」:这是一种深度学习模型,特别适用…

C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频

数据是当今数字时代的核心资源,但是从互联网上抓取数据并不容易。本文将教您如何利用C#编程艺术和Fizzler库高效爬取Twitter上的音频数据,让您轻松获取所需信息。 Twitter简介 Twitter是全球最大的社交媒体平台之一,包含丰富的音频资源。用…

【TensorFlow 精简版】TensorFlow Lite

目录 一 TensorFlow Lite简介 二 开发 三 开始使用 一 TensorFlow Lite简介 TensorFlow Lite 是一组工具,可帮助开发者在移动设备、嵌入式设备和 loT 设备上运行模型,以便实现设备端机器学习。 针对设备端的机器学习进行的优化: ① 延时&…

WPF+Halcon 培训项目实战(1-5):Halcon安装,图像处理,Halcon简单模板匹配

文章目录 前言相关链接项目专栏我个人对就业市场的评价Halcon安装实战1-4:Halcon基础实战5:模板匹配[形状匹配]实战代码 结尾 前言 为了更好地去学习WPFHalcon,我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主…

C++构建简单静态库实例(cmakelist)

一、开发实例 通过cmake构建静态开发实例如下: 1.1 代码目录 代码目录结构如下: 1.2 代码内容 1.2.1 CMakeLists.txt # CMake 最低版本要求 cmake_minimum_required(VERSION 3.10)# 项目名称 project(mylib)# 添加源文件 set(SOURCE_FILESsrc/mylib

连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver‘,亲测有效!!!

Jmeter连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver’ 1.到官方下载驱动注意:根据项目的JDK版本来下载对应的驱动Download | pgJDBC 2.将postgresql-42.2.27.jar复制到lib目录下面, 然后重新启动 连接driver信息如下&#…

mapboxgl 中热力图的实现以及给热力图点增加鼠标移上 popup 效果

文章目录 概要效果预览技术思路技术细节小结 概要 本篇文章还是关于最近做到的 mapboxgl 地图展开的。 借鉴官方示例:https://iclient.supermap.io/examples/mapboxgl/editor.html#heatMapLayer 效果预览 技术思路 将接口数据渲染到地图中形成热力图。还需要将热…

采集京东网数据的10个经典方法

采集京东电商网数据的10个经典方法 京东网数据采集全网抓取网页数据、商品销量、全网搜索、网页爬虫、采集网站数据、网页数据采集软件、python爬虫、HTM网页提取、APP数据抓包、APP数据采集、一站式网站采集技术、BI数据的数据分析、数据标注等成为大数据发展中的热门技术关键…

反序列化漏洞分析

接着昨天的来说,由于fastjson调试起来过程比较复杂,在这里直接看关键点:首先会获取字符串的第一对引号中的内容 如果内容为type就会加载下一对引号中的类 在JavaBeanInfo.class中会获取类中所有详细详细 在这里匹配以set开头的方法 methodNam…