如何使用凹凸贴图和位移贴图制作逼真的模型

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

本教程将解释如何应用这些效应背后的理论。在以后的教程中,我们将研究如何快速使用GLTF 编辑器 -NSDT来实现梦幻般的逼真模型。

第 1 步:两种纹理贴图的简单介绍

1) 图像纹理:可以应用徽标、文本、图像和条形码等图形的地方

·当这些元素应用于模型时,它们称为图像纹理。 我们将经常使用“纹理”一词,因此重要的是要记住,我们指的是图像或图形,而不一定是表面光洁度。

2)凹凸和位移映射:在颜色和物理触感方面完全模仿真实世界的材质

·该技术还使用图像纹理来实现某种颜色或逼真的效果(如上所述),但它也可以包括控制模型其他方面的图像纹理,例如表面高度、反射率、粗糙度等。

·例如,在动画中使用凹凸贴图向计算机渲染引擎提供有关对象应如何与灯光交互的指令。这通常会导致零件从远处看起来非常逼真,但锐角的特写镜头会发现模型几何形状是平坦的。

应用了凹凸贴图的渲染零件,允许光源与零件进行交互

·在3D打印中,我们可以进一步利用这个凹凸贴图,将其变成一个位移贴图,该位移贴图确实改变了零件的表面几何形状,从而产生了一个模仿原始零件的零件,不仅在外观上,而且在实际形貌上。位移将凹凸贴图对这些特征的模拟转换为其实际表面形状。3D打印机可以使用位移来模仿复杂的材料和饰面,如皮革、木材、石材。

渲染零件,凹凸贴图转换为位移

将纹理或凹凸/位移贴图直接应用于 CAD 模型的好处是,您可以利用现有的图形和图像,对曲面几何形状进行重大更改,而无需手动建模任何复杂的曲面。正是软件应用了这些复杂的影响,节省了时间和精力,并实现了原本不可能的细节和成像水平。

下面我们将解释这两种设计技术的工作原理。

第 2 步:纹理,它是如何工作的?

将纹理应用到 3D 网格的整个过程包括在打印之前将纹理(图像、徽标、贴花等)直接映射到网格上。

许多 CAD 软件包都提供此功能。为了最大限度地控制纹理的放置方式,您可以使用 Autodesk®、Maya® 或 3DS Max™ 等设计/动画软件。您还可以使用 Adobe Photoshop 获得非常令人印象深刻的结果,Adobe® Photoshop® 是一个更易于访问的软件包,带有图像编辑工具,可以调整和编辑正在应用的纹理。然后,可以将输出文件导出为 OBJ 或 WRL,并发送到 GrabCAD Print 等预打印软件。

注意:

渲染包通常不设计为输出适合 3D 打印的防水网格。通常,您需要更改模型导出设置和/或在外部/第三方程序中修复文件网格来实现此目的。

应用纹理的主要步骤是:

一个。设计一个 3D 对象,如下所示的立方体。

b.映射并展开 3D 对象的几何图形,使其在 2D 平面中表示。

c. 导入 2D 图像纹理。

d. 对齐几何贴图和纹理图像。

e.将纹理图像叠加到零件的几何贴图上。此过程称为 UV 映射。(UV 是在 2D 图像平面上找到的映射到 3D XYZ 坐标的坐标)

f.使用这些映射的 UV 坐标将 2D 图像“包裹”到原始 3D 几何体上。

从视觉上看,上面的过程看起来像这样:

第 3 步:凹凸映射,它是如何工作的?

正如我们上面所解释的,凹凸贴图通过使用光影来欺骗您的眼睛,让您认为物体具有更复杂的表面,从而产生高度和地形的错觉。实际上,表面保持平坦。

凹凸和位移之间的区别总结如下图所示:

纹理和凹凸贴图 凹凸转换为位移的纹理

那么,凹凸贴图是如何工作的呢?设计软件使用由白色、黑色和灰色组成的凸起/高度图来指示需要显示的高度差。

白色 = 高点

黑色 = 低点

灰度 = 介于两者之间的渐变

只有黑白的高度图会导致高度的突然变化。灰度增加了更平滑的过渡。

此凸起/高度贴图保存为图像文件(例如,JPEG、IMG 等),并以与图像纹理相同的方式应用(请参阅步骤 2 中的立方体图片)。通常,这两个图像(纹理和高度贴图)结合使用,以实现完全逼真的材质效果。

这些凸起/高度贴图最初用于最小化模型文件大小并提高游戏内动画的处理速度。程序员操纵光线和阴影,使模型看起来逼真,同时保持其表面几何形状不变,因此图形引擎可以更轻松、更快速地进行处理。

第 4 步:位移。它是如何工作的?

将此模拟的凸块几何形状更改为已改变的曲面几何形状的过程称为位移。置换贴图将应用为纹理的凸起/高度贴图,并使用它来位移网格几何体的表面,以赋予其真实的高点和低点。

通常,在将凹凸转换为位移时,需要定义的只是位移的严重性,即在位移期间将应用的地图的黑色区域和白色区域之间的高度差。这种高度差通常以毫米为单位。

总结

GLTF 编辑器 -NSDT 是一款专门用于3D模型纹理贴图的工具,它支持3D模型各种材质纹理贴图的编辑修改,包括:颜色、粗糙度、金属度、贴图、顶点颜色、
自发光贴图、透明贴图、凹凸贴图、法线贴图、位移贴图、粗糙贴图、金属贴图、
光照贴图、透明度等;是一个功能强大、易于使用的在线3D模型编辑和查看工具,它支持多种格式的3D模型导入并将模型导出为GLB格式,除了可以对3D模型进行基本属性的修改之外,还支持对模型原点重置以及模型材质纹理修改。对于3D开发者和设计师来说,GLTF 编辑器 是一个非常有用的工具,可以帮助他们更方便地处理3D模型。

转载:如何使用凹凸贴图和位移贴图制作逼真的模型 (mvrlink.com)

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

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

相关文章

【网络技术】【Kali Linux】Wireshark嗅探(五)文件传输协议(FTP)

一、实验目的 本次实验使用Wireshark流量分析工具进行网络嗅探,旨在了解文件传输协议(FTP)的工作原理。 二、FTP协议概述 文件传输协议(File Transfer Protocol)是互联网上使用得最广泛的文件传输协议,用…

3dmax渲染全景图参数设置 3dmax云渲染插件使用

家经常在互联网上看到制作360度全景图的各种教程,但这些教程往往是片段的,并且细节解释并不充分。为此,以下是一些从业者常用的优良做法,涉及到3ds Max中的场景布局和V-Ray渲染设置,这些建议旨在提供一个更全面和详尽的…

前端插件库-VUE3 使用 vue-codemirror 插件

VUE3 插件 vue-codemirror 使用步骤和实例、基于 CodeMirror ,适用于 Vue 的 Web 代码编辑器。 第一步:安装 vue-codemirror & codemirror 包 , 以及语言包 npm install codemirror --save npm install vue-codemirror --savenpm insta…

大数据机器学习TF-IDF 算法+SnowNLP智慧旅游数据分析可视化推荐系统

文章目录 大数据机器学习TF-IDF 算法SnowNLP智慧旅游数据分析可视化推荐系统一、项目概述二、机器学习TF-IDF 算法什么是TF-IDF?TF-IDF介绍名词解释和数学算法 三、SnowNLP四、数据爬虫分析五、项目架构思维导图六、项目UI系统注册登录界面各省份热门城市分析城市热…

FastReport分组后半页空白问题解决办法

在使用FastReport进行分组后,经常会出现‘半页空白’的现象。比如按颜色进行分组,有白、黑、红三个颜色,第一类白色信息展示完成后,紧接着的第二类黑色信息,会从新的一页开始展示,白色信息的末尾会出现半页…

前端开发个人简历范本(2024最新版-附模板)

前端开发工程师个人简历范本> 年龄 25岁 性别 男 毕业院校 XX大学 张三 学历 邮箱 leeywai-tools.cn 本科 专业 计算机科学与技术 个人梗概 拥有扎实的前端开发技能和丰富的实践经验 善于与团队合作,适应能力强,能够快速融入团队并贡献自…

C++八股学习心得.3

1.C 数组 C 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个…

word中设置上标后括号和数字没有上下对齐,解决

问题 word中设置上标后括号和数字没有上下对齐,如下图 原因 因为数字的括号是中文状态下输入的,数字是英文状态。用户需要将其改变成用英文状态下输入 解决办法 统一成英文状态:选中,设置字体为“半角” 如果上标来自参考文献…

CEC2017(Python):五种算法(DBO、HHO、RFO、SSA、PSO)求解CEC2017

一、5种算法简介 1、蜣螂优化算法DBO 2、哈里斯鹰优化算法HHO 3、红狐优化算法RFO 4、麻雀搜索算法SSA 5、粒子群优化算法PSO 二、CEC2017简介 参考文献: [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem d…

vue-cli项目优化gzip实践

背景:某天测试小妹气冲冲跑过来说你的网站首次打开平均16秒,慢得不行啊,空白时间太久,这样客户是不收货的,必须优化。谁叫我们是以测试驱动开发的,测试妹子的话等同与老板的命令。 空白是吧,我…

FindMy技术用于鼠标

鼠标是计算机的标准配置之一,其设计初衷是为了使计算机的操作更加简便快捷,减少用户在操作中的负担。用户可以通过移动鼠标,实现光标的精确移动,进而选择、拖拽、复制、粘贴等操作。这种操作方式,使得计算机的操作变得…

病急乱投医?大众「危机」

对于外资车企(以及合资品牌)来说,面对当下电动化、智能化市场白热化竞争的局面,显然有些「病急乱投医」的处境。 本周,大众汽车被曝出正在积极寻找合作伙伴,以帮助实现电动化转型的低成本目标,即…

【AIGC】金融号角吹响,现代技术引爆财富冲击波

在金融领域,创新力量的推动下,AIGC作为一位革命者崭露头角。其独特的理念和颠覆性的方法,将重新定义我们对健康的认知。它不仅改变了我们对金融的理解,更将引领我们走向一个全新的未来。AIGC的出现,无疑为金融界带来了…

Swagger 教程:从零开始学习Swagger

Swagger 是一个开源的 API 设计和文档工具,可以帮助全栈工程师更快、更简单地设计、构建、文档化和测试 RESTful API。本篇文章将为全栈工程师介绍 Swagger 的基础知识和使用方法,以及如何使用 Swagger 设计、文档化和测试 RESTful API。 一、Swagger 简…

03-SpringCloud-Ribbon负载均衡

Ribbon负载均衡 1.1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。 那么我们发出的请求明明是http://userservice/user/1,怎么变成了http://localhost:8081的呢? 1.2.源码跟踪 为什么我们只输入…

关于执行 roslaunch xxxxx yyyy.launch 后,没能进入 RViz 就卡死的问题

Problem 话不多说,先看图。 终端也会提示有报错(可能是这种,但不确定): 这是发现问题所在之后,故意改错,然后尝试的。☝ Solution 总以为是显卡的问题,一直在研究怎么在 Ubuntu2…

pytorch04:网络模型创建

目录 一、模型创建过程1.1 以LeNet网络为例1.2 LeNet结构1.3 nn.Module 二、网络层容器(Containers)2.1 nn.Sequential2.1.1 常规方法实现2.1.2 OrderedDict方法实现 2.2 nn.ModuleList2.3 nn.ModuleDict2.4 三种容器构建总结 三、AlexNet网络构建 一、模型创建过程 1.1 以LeNe…

【力扣题解】P501-二叉搜索树中的众数-Java题解

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P501-二叉搜索树中的众数-Java题解🌏题目描述💡题解&#x1f…

文本表示模型简介

文本是一类非常重要的非结构化数据,如何表示文本数据一直是机器学习领域的一个重要研究方向。那么有哪些文本表示模型?以及它们各有什么优缺点? 1. 常见的文本表示模型 1.1. 词袋模型和N-gram模型 最基础的文本表示模型是词袋模型。顾名思…

Java最新技术介绍和分析 (202305)

说明:本文完成了2023年5月份,当时最新的LTS版本是Java17,本文在撰写时参考了美团技术团队和阿里JDK团队相关的文章,以及本文也引了用文章中的图片。在此表示感谢! Java版本火车 相信老牌的Java开发者和爱好者把Java的…