凹凸/法线/移位贴图的区别

news2024/10/5 21:26:08

你是否在掌握 3D 资产纹理的道路上遇到过障碍? 不要难过! 许多刚接触纹理或 3D 的艺术家在第一次遇到凹凸贴图(Bump Map)、法线贴图(Normal Map)和移位贴图(Displacement Map)时通常会感到困惑。 他们似乎都在做同样的事情,对吧?
在这里插入图片描述

推荐:用 NSDT场景设计器 快速搭建3D场景。

这个问题的答案是一个响亮的“有点”。 这三种类型的贴图中的每一种都会在几何表面上创建一些看起来像附加分辨率或细节的东西。 这些细节有些是真实的,有些则不是。 在本文中,我们将深入研究这三种贴图,并了解每种贴图做什么和不做什么,更好地掌握每种类型的优点和缺点。

1、凹凸贴图

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

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

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

在这里插入图片描述

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

凹凸贴图的问题在于,如果相机从错误的角度观察它们,它们很容易穿帮。 由于他们创建的细节是假的,并没有添加真正的分辨率,因此应用凹凸贴图的几何体轮廓将始终不受贴图影响。

2、法线贴图

法线贴图(Normal Map)可以被认为是一种更新、更好的凹凸贴图。 与凹凸贴图一样,关于法线贴图,首先需要了解的是它们创建的细节也是假的。 场景中的几何体没有额外的分辨率。

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

在学习法线贴图时,你应该知道有两种完全不同的类型。 在 2D 空间中查看时,这两种类型看起来完全不同。 最常用的称为切线空间(Tangent Space)法线贴图,主要是紫色和蓝色的混合。 这些贴图最适合在动画过程中必须变形的网格。 切线空间法线贴图非常适合角色之类的东西。 对于不需要变形的资产,通常使用对象空间(Object Space)法线贴图。
在这里插入图片描述

这些贴图有不同颜色的彩虹组合,并且性能略高于切线空间贴图。 在考虑使用法线贴图时,需要注意一些事项。 与凹凸贴图不同,这些类型的贴图很难在 Photoshop 等 2D 软件中创建或编辑,可能需要使用网格的高分辨率版本烘焙法线贴图。

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

3、移位贴图

移位贴图(Displacement Map)物理置换(顾名思义)应用它们的网格。 为了根据移位贴图创建细节,通常必须细分或细分网格,以便创建真实的几何体。

移位贴图的伟大之处在于它们实际上可以从高分辨率模型烘焙或手工绘制。 与凹凸贴图一样,移位贴图由灰度值组成。
在这里插入图片描述

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

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

与凹凸贴图或法线贴图相比,移位贴图还会显着增加渲染时间。 由于这种额外的几何形状,很难击败移位贴图的结果。 由于表面实际上已修改,因此轮廓反映了额外的几何体。 在决定使用移位贴图之前,应该始终权衡移位贴图的成本和增加的好处。

4、整合使用凹凸/法线/移位贴图

在某些情况下,你可以在同一资产上将凹凸贴图或法线贴图与移位贴图结合使用。 最好的方法是对几何体的大变化使用位移,然后对精细细节使用法线或凹凸。 无论选择使用哪种贴图,了解其工作原理以及它的优点和缺点会让你更容易做出决定。

最终,你使用的贴图应该是最适合自己正在处理的场景需求。

原文链接:凹凸/法线/移位贴图 — BimANt

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

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

相关文章

Linux Redis主从复制 | 哨兵监控模式 | 集群搭建 | 超详细

Linux Redis主从复制 | 哨兵监控模式 | 集群搭建 | 超详细一 Redis的主从复制二 主从复制的作用三 主从复制的流程四 主从复制实验4.1 环境部署4.2 安装Redis(主从服务器)4.3 修改Master节点Redis配置文件 (192.168.163.100)4.4 修改Slave节点Redis配置文…

MySQL-用户与权限

目录 🍁DB权限表 🍁新建普通用户 🍂创建新用户(create user) 🍂创建新用户(grant) 🍁删除普通用户 🍁修改用户密码 🍂Root用户修改自己的密码 🍂Root用户修改普通用户密码 &#x1f…

区块链概论

目录 1.概述 2.密码学原理 2.1.hash函数 2.2.签名 3.数据结构 3.1.区块结构 3.2.hash pointer 3.3.merkle tree 3.3.1.概述 3.3.2.证明数据存在 3.3.3.证明数据不存在 4.比特币的共识协议 4.1.概述 4.2.验证有效性 4.2.1.验证交易有效性 4.2.2.验证节点有效性 …

~~~~~不得不会的账号与权限管理小知识

目录一.用户账号和组账号概述二. useradd添加用户账号三. passwd 修改密码四. 修改用户账户的属性五 . userdel 删除用户账号六. 用户账号的初始配置文件七. 组账号文件八 . 文件/目录的权限及归属8.1设置文件和目录的权限chmod8.2 设置文件和目录的归属chown命令8.3 补充扩展:…

JAVA本地监听与远程端口扫描的设计与开发

随着Internet的不断发展,信息技术已成为社会进步的巨大推动力。不管是存储于服务器里还是流通于Internet上的信息都已成为一个关系事业成败的关键,这就使保证信息的安全变得格外重要。本地监听与远程端口扫描程序就是在基于Internet的端口扫描的基础上&a…

Optional类快速上手

目录 一、概述 二、使用 1、创建对象 2、安全消费值 3、安全获取值 4、过滤 5、判断 6、数据转换 一、概述 我们在编码的时出现最多的就是空指针异常,所以在很多情况下我们需要做各种非空的判断。 尤其是对象中的属性还是一个对象的情况下,这种…

Doris(3):创建用户与创建数据库并赋予权限

Doris 采用 MySQL 协议进行通信,用户可通过 MySQL client 或者 MySQL JDBC连接到 Doris 集群。选择 MySQL client 版本时建议采用5.1 之后的版本,因为 5.1 之前不能支持长度超过 16 个字符的用户名。 1 创建用户 Root 用户登录与密码修改 Doris 内置 ro…

从C出发 19 --- 函数定义细节剖析

因为编译器是自上而下执行代码的,当编译到 paw2 的时候不知道是什么东西,看起来像一个函数但是前面的代码没有发现它,这个时候编译器就会报错 为了防止编译器报错 应该在调用前先声明 ,注意声明的三要素 声明的作用: 让编译器先…

# 切削加工形貌的相关论文阅读【1】-球头铣刀铣削球面的表面形貌建模与仿真研究

切削加工形貌论文【1】-球头铣刀铣削球面的表面形貌建模与仿真研究1. 论文【2】-球头铣刀加工表面形貌建模与仿真1.1 切削加工形貌仿真-考虑的切削参数1.2 其他试验条件1.3 主要研究目的1.4 试验与分析结果1.5 面粗糙度的评价指标2. 论文【1】-球头铣刀加工球面(曲面…

Flutter Row 实例 —— 新手礼包

大家好,我是 17。 本文在 3.31 日全站综合热榜第一。 新手礼包一共 3 篇文章,每篇都是描述尽量详细,实例讲解,包会! Flutter Row 实例 —— 新手礼包Flutter TextField UI 实例 —— 新手礼包Flutter TextField 交…

CDN如何成为大站标配?

在当下的互联网应用中充斥了大量的静态内容,这些静态和准动态内容在访问请求中占据了大量的网络资源,如果这些请求全部指向源站服务器,很容易导致网络的拥塞甚至是服务器的宕机,对正常的业务开展造成严重影响。为了解决这种情况&a…

共享电子邮件的运作方式

通过电子邮件共享,您可以使用评论轻松管理围绕电子邮件展开的讨论,而无需多次转发和回复。这提供了一种轻松的方式,让您可以通过电子邮件与同事分享信息,并获得他们对此的意见/反馈/建议。 电子邮件共享的运作方式 您收到或发送的…

开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放

场景 目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS、EasyDarwin、ZLMediaKit和Monibuca等。 1、SRS GitHub - ossrs/srs: SRS is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH and …

【linux】 安装 java 环境

目录1.检查linux 下是否安装java(jdk)环境2.查看 linux 的操作系统版本3.下载jdk4.新建java文件夹用于安装jdk5.将下载到本地的jdk压缩包上传到linux服务器6.配置环境变量1.检查linux 下是否安装java(jdk)环境 可通过下面五条命令来查看linux 系统是否安装了java 环境 1、java …

$ZZZ 以 Launchpad 形式多平台首发,GoSleep 成 Sleep to Earn 叙事成 X2E 新宠

“ GoSleep 的治理代币 $ZZZ 将以 Launchpad 形式登录 Bitget、Gate.io以及MXC,这或许预示着 Sleep to Earn 叙事或成 X2E 新宠” “Sleep to Earn” 成为 X2E 市场新发力点 StepN 在去年为 X2E 赛道做了一个很好的示范,这也让这个领域不再仅仅局限于基于…

HarmonyOS/OpenHarmony应用开发-Stage模型ArkTS语言Ability基类

Ability模块提供对Ability生命周期、上下文环境等调用管理的能力,包括Ability创建、销毁、转储客户端信息等。 说明: 模块首批接口从API version 9 开始支持。模块接口仅可在Stage模型下使用。 导入模块: import Ability from ohos.app.ability.Ability; 接口说明…

虚拟化技术:实现资源高效利用和灵活管理的利器

虚拟化技术是一种通过软件或硬件手段,将物理资源抽象化,从而创建虚拟资源的技术。这种技术可以应用于计算、存储、网络等领域,通过将物理资源划分为多个虚拟资源,使得多个应用程序或用户可以共享同一组物理资源,从而提…

面试官:说说Java、Spring、Dubbo三者SPI机制的原理和区别

今天来跟大家聊一聊Java、Spring、Dubbo三者SPI机制的原理和区别。 其实我之前写过一篇类似的文章,但是这篇文章主要是剖析dubbo的SPI机制的源码,中间只是简单地介绍了一下Java、Spring的SPI机制,并没有进行深入,所以本篇就来深入…

数据结构2:顺序表和链表

目录 1.线性表 2.顺序表 2.1概念及结构 2.2接口实现 2.3数据相关面试题 2.4顺序表的问题及思考 3.链表 3.1链表的概念及结构 3.2链表的分类 3.3链表的实现 3.4链表面试题 3.5双向链表的实现 4.顺序表和链表的区别 1.线性表 线性表(linear list&#x…

Qt QImage scaled方法缩放中的问题

最近在某些测试中发现,QImage 先按照一定的比例进行缩放,在对QImage对象进行绘制等操作后,使用以下的方式将其恢复到其原来的尺寸。 图像的缩放是这样的: void ImageBaseWidget::zoomImage(QMouseEvent *event) {if (event->…