3D模型材质编辑器

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

材质贴图(Texture Mapping):是在物体着色方面最引人注目、也是最拟真的方法,同时也多为游戏软件所采用。一张平面图像(可以是数字化图像、小图标或点阵位图)会被贴到多边形上,通常把它想象成3D物件的壁纸,亦即将一张2D图纸"糊"到一个3D表面。如在赛车游戏的开发上,可能也会用这项技术来绘制轮胎胎面及车体涂装。

1、什么是材质纹理?

材质的真相

材质简单的说就是物体看起来的质地。材质可以看成是材料和质感的结合。在渲染程序中,它是表面各可视属性的结合,这些可视属性是指表面的色彩、纹理、光滑度、透明度、反射率、折射率、发光度等。正是有了这些属性,才能让我们识别三维中的模型是什么做成的,也正是有了这些属性,我们计算机三维的虚拟世界才会和真实世界一样缤纷多彩。我们必须仔细分析产生不同材质的原因,才能让我们更好的把握质感。材质的真相仍然是光,离开光材质是无法体现的。举例来说,借助夜晚微弱的天空光,我们往往很难分辨物体的材质,而在正常的照明条件下,则很容易分辨。另外,在彩色光源的照射下,我们也很难分辨物体表面的颜色,在白色光源的照射下则很容易。这种情况表明了物体的材质与光的微妙关系。下面,我们将具体分析两者间的相互作用。

色彩(包括纹理)

色彩是光的一种特性,我们通常看到的色彩是光作用于眼睛的结果。但光线照射到物体上的时候,物体会吸收一些光色,同时也会漫反射一些光色,这些漫反射出来的光色到达我们的的眼睛之后,就决定物体看起来是什么颜色,这种颜色在绘画中称为“固有色”。这些被漫反射出来的光色除了会影响我们的视觉之外,还会影响它周围的物体,这就是光能传递。当然,影响的范围不会像我们的视觉范围那么大,它要遵循光能衰减的原理。另外,有很多资料把Radiosity翻译成“热辐射”,其实这也蛮贴切的,因为物体在反射光色的时候,光色就是以辐射的形式发散出去的,所以,它周围的物体才会出现“染色”现象。

光滑与反射

一个物体是否有光滑的表面,往往不需要用手去触摸,视觉就会告诉我们结果。因为光滑的物体,总会出现明显的高光,比如玻璃、瓷器、金属………而没有明显高光的物体,通常都是比较粗糙的,比如砖头、瓦片、泥土………这种差异在自然界无处不在,但它的产生依然是光线的反射作用,但和上面“固有色”的漫反射方式不同,光滑的物体有一种类似“镜子”的效果,在物体的表面还没有光滑到可以镜像反射出周围的物体的时候,它对光源的位置和颜色是非常敏感的。所以,光滑的物体表面只“镜射”出光源,这就是物体表面的高光区,它的颜色是由照射它的光源颜色决定的(金属除外),随着物体表面光滑度的提高,对光源的反射会越来越清晰,这就是在三维材质编辑中,越是光滑的物体高光范围越小,强度越高。当高光的清晰程度已经接近光源本身后,物体表面通常就要呈现出另一种面貌了,这就是Reflection材质产生的原因,也是古人磨铜为镜的原理。但必须注意的是,不是任何材质都可以在不断的“磨练”中提高自己的光滑程度。比如我们很清楚瓦片是不会磨成镜的,原因是瓦片是很粗糙的,这个粗糙不单指它的外观,也指它内部的微观结构。瓦片质地粗糙里面充满了气孔,无论怎样磨它,也只能使它的表面看起来整齐,而不能填补这些气孔,所以无法成镜。我们在编辑材质的时候,一定不能忽视材质光滑度的上限,有很多初学者作品中的物体看起来都像是塑料做的就是这个原因。

透明与折射

自然界的大多数物体通常会遮挡光线,当光线可以自由的穿过物体时,这个物体肯定就是透明的。这里所指的“穿过”,不单指光源的光线穿过透明物体,还指透明物体背后的物体反射出来的光线也要再次穿过透明物体,这样使我们可以看见透明物体背后的东西。由于透明物体的密度不同,光线射入后会发生偏转现象,这就是折射。比如插进水里的筷子,看起来就是弯的。不同的透明物质其折射率也不一样,即使同一种透明的物质,温度的不同也会影响其折射率,比如当我们穿过火焰上方的热空气观察对面的景象,会发现有明显的扭曲现象。这就是因为温度改变了空气的密度,不同的密度产生了不同的折射率。正确的使用折射率是真实再现透明物体的重要手段。

2、材质贴图的作用?

材质贴图在计算机图形学中是把存储在内存里的位图包裹到3D渲染物体的表面。纹理给物体提供了丰富的细节,用简单的方式模拟出了复杂的外观。一个图像(纹理)被贴(映射)到场景中的一个简单形体上,就像印花贴到一个平面上一样。这大大减少了在场景中制作形体和纹理的计算量。例如,可以创建一个球并把脸的纹理贴上去,这样就不用处理鼻子和眼睛的形状了。

随着图形卡功能越来越强,理论上材质贴图变得越来越不必要,而三维绘制(渲染)成了常用的工具。但事实上,最近的趋势是使用更大和更多的纹理图像,再加上把多幅纹理组合到同个物体的不同角度的复杂技术。(这在实时图形学中更为重要,因为同时显示的纹理个数是可用图形内存容量的函数。)

最后显示在屏幕上的像素是从纹理的texel中计算的,这由纹理滤波决定。最快的方法是每个像素使用一个texel,线性插值也很常用,还有更复杂的办法,参看MIPMAP。另外,纹理也可用来决定模型表面的颜色,甚至双向反射分布函数(BRDF),从而和光照模型等方法结合起来。

3、有哪些材质贴图?

  1. 贴图(Texture):贴图是指将图像映射到模型表面以实现细节和纹理效果的技术。常见的贴图类型包括颜色贴图、法线贴图、高光贴图、环境贴图等。颜色贴图用于定义模型表面的基本颜色。法线贴图用于模拟表面的细节和凹凸感。高光贴图用于定义模型表面的镜面高光反射部分,增强光照效果。环境贴图用于模拟环境光照和反射。
  2. 自发光贴图(Emissive Texture):自发光贴图定义了模型表面自身发光的部分。通过给模型的某些区域赋予自发光贴图,可以使其在渲染时呈现出发光的效果,例如荧光材质或发光纹理效果。
  3. 透明贴图(Opacity Texture):透明贴图用于控制模型表面的透明度。通过透明贴图,可以实现模型局部透明或半透明的效果,如玻璃、水面或植物的叶子等。
  4. 凹凸贴图(Bump/Normal Texture):凹凸贴图通过改变模型表面正常的法线方向来模拟凹凸细节。该贴图可以赋予表面更多的细节和深度感,但不会改变模型的几何形状。
  5. 环境光遮挡贴图(Ambient Occlusion Texture):环境光遮挡贴图用于模拟环境中光线受阻遮挡的效果。它可以增强模型的凹凸感和阴影效果,使其看起来更真实。
  6. 位移贴图(Displacement Map):位移贴图通过改变模型顶点的位置来模拟细节和几何形状的改变。与凹凸贴图不同,位移贴图可以真实地改变模型的几何形状。
  7. 粗糙贴图(Roughness Texture):粗糙贴图用于控制模型表面的光滑度。通过调整粗糙贴图的值,可以实现模型表面的光滑或粗糙的外观。
  8. 金属贴图(Metallic Texture):金属贴图用于定义模型表面的金属属性。通过调整金属贴图的值,可以指定哪些部分是金属的,哪些是非金属的。
  9. 光照贴图(Lighting Texture):光照贴图用于预定义模型的光照效果。通过给模型应用光照贴图,可以在渲染时模拟出各种光照条件下的外观效果。
  10. 其他。

4、如何设置3D模型材质贴图?

很多时候,创建好模型之后,我们都希望给模型应用一些纹理,从而提高模型的真实效果,这些在GLTF在线纹理贴图工具中可轻松实现。但要注意,GLTF在线纹理贴图工具会导入所有的模型装配和组件,保留模型结构,如果你想面向相同的部件,实现不同的纹理/外观,只需在3D建模软件中给那些面雕刻不同的颜色。

左侧是模型的mesh网格

GLTF在线纹理贴图工具 是一款基于web的在线纹理贴图工具,使用者根据模型的mesh添加对应的纹理贴图就可以很轻松的完成模型的纹理编辑。

如何设置Mesh纹理?

使用者先选择左侧面板的mesh网格,右侧就会展示对应的纹理属性,如图:

然后根据需设置点击【纹理】属性后面的白色按钮,弹出本地文件选择框,选择本地纹理贴图文件,点击确定就可以将纹理贴图添加到对应的Mesh上。

以下是使用GLTF在线纹理贴图工具 设置纹理贴图的三个实例:

地形纹理

交通信号灯

雪糕筒

GLTF 编辑器 是一个功能强大、易于使用的在线3D模型编辑和查看工具,它支持多种格式的3D模型导入并将模型导出为GLB格式,除了可以对3D模型进行基本属性的修改之外,还支持对模型原点重置以及模型材质纹理修改。对于3D开发者和设计师来说,GLTF 编辑器 是一个非常有用的工具,可以帮助他们更方便地处理3D模型数据。

转载:3D模型材质编辑器 (mvrlink.com)

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

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

相关文章

MySQL中的存储过程(详细篇)

文章目录 概述优点缺点 MySQL存储过程的定义存储过程的基本语句格式存储过程的使用定义一个存储过程定义一个有参数的存储过程定义一个流程控制语句 IF ELSE定义一个条件控制语句 CASE定义一个循环语句 WHILE定义一个循环语句 REPEAT UNTLL定义一个循环语句 LOOP使用存储过程插…

Go 内置运算符

一、算数运算符 1、算数运算符使用 package mainimport ("fmt" )func main(){fmt.PrintIn("103",103) //10313fmt.PrintIn("10-3",10-3) //10-37fmt.PrintIn("10*3",10*3) //10*330//除法注意:如果运算的数都是…

工信部:1—10月我国软件业务收入98191亿元 同比增长13.7%

2023年1—10月份软件业经济运行情况 1—10月份,我国软件和信息技术服务业(以下简称“软件业”)运行态势平稳,软件业务收入较快增长,利润总额两位数增长,软件业务出口降幅持续收窄。 一总体运行情况 软件…

Python编写的爬虫:为什么受到如此的欢迎?

目录 一、引言 二、Python爬虫受欢迎的原因 1、语言简洁易读 2、强大的数据处理能力 3、丰富的网络爬虫库 4、跨平台性 5、社区支持与资源丰富 三、Python爬虫应用案例 四、总结 一、引言 在当今的大数据时代,信息获取和数据处理能力对于企业和个人来说至…

网络篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、说一下HTTP的长连接与短连接的区别二、TCP 为什么要三次握手,两次不行吗?为什么?三、说一下 TCP 粘包是怎么产生的?怎么解决粘包问题的?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大…

类 —— 封装、四类特殊成员函数、this指针、匿名对象、深浅拷贝问题

类 将同一类对象的所有属性都封装起来。 类中最基础的内容包括两部分,一个是属性、一个是行为。 ● 属性:表示一些特征项的数值,比如说:身高、体重、性别、肤色。这些属性都是名词。属性一般都以名词存在。属性的数值&#xff0c…

Linux(CentOS7.5):硬盘分区纪实

一、服务器概述 1、既有一块系统硬盘,新增一块100G硬盘。 2、要求,将新插入硬盘分为:20G、30G、50G。 二、操作步骤 1、确认新硬盘是否插入成功: fdisk -l# 红色框出来的,为识别出来的新硬盘信息 # 黄色框出来的&#…

BGP路由的选路综合实验

题目要求 1.使用PreVal策略,确保R1通过R3到达192.168.10.0/24 2.使用AS_Path策略,确保R1通过R3到达192.168.11.0/24 3.配置MED策略,确保R1通过R3到达192.168.12.0/24 4.使用Local Preference策略,确保R4通过R2到达192.168.1.0/24…

联邦学习Federated Learning(FL)

联邦学习Federated Learning 序言FL流程细节FL代码实现(Pytorch)Reference 序言 手机的数据涉及到个人隐私和安全,如果将客户端的数据上传到服务端,终究是很容易泄漏出用户的信息,何况 用户也不愿意把自己的数据交给服…

使用Python实现银行管理系统

使用Python实现银行管理系统 题目介绍程序演示登录开户查询取款存款转账锁定解锁存盘退出 相关代码开户功能查询功能取款功能存款功能转账功能锁定功能解锁功能存盘功能加载存盘的数据登录/登出功能主程序 完整代码 在本篇博文中,我们将使用Python编写一个简单的银行…

优雅写代码之《idea中配置封装快捷键代码、生成类方法注释》-详细配置+配置代码--可重用为封装快捷键模板,加速重复代码编写

阿丹: 会写注释的程序员配享太庙!哈哈哈,阿丹发现还是有小伙伴不会配置注释的模板甚至还是有一些小伙伴在手写一些简单可生产的注释,这个文章就一次性给大家解决一下!这些问题!!! 其…

uniapp页面使用多个echarts出现数据渲染错乱问题解决

首先,uniapp当中使用echarts是在通过使用renderjs的script模板的前提下实现的,在官方提供的案例当中,核心代码是这一部分: 但如果将其封装为组件,并在一个页面当中引用多次来生成多个charts图标,那么这个时…

大语言模型:以Amazon Titan等大语言模型为例介绍

大语言模型(Large Language Model)是一种人工智能技术,通过对海量文本数据进行训练,学习语言的结构、规则和语义,从而可以生成具有自然语言风格的文本或回答自然语言的问题。大语言模型一般基于神经网络技术&#xff0…

如何销售产品说话技巧

如何销售产品说话技巧 在销售产品的过程中,说话技巧的重要性不言而喻。一个出色的销售人员必须掌握如何运用流畅、通顺的语言,措辞优美,更有吸引力地表达自己的观点。以下是一些有助于提高销售产品说话技巧的建议: 1. 深入了解你…

03_歌词滚动效果

03_歌词滚动效果 文章目录 03_歌词滚动效果效果一、数据准备①:歌词②:音频等 二、代码实现①:首页②:样式③:js逻辑④:测试 效果 一、数据准备 ①:歌词 var lrc [00:00.95]夜微凉 - 徐珊 [0…

Windows10 下 CUDA 新旧多版本共存

前言 为了运行一个 Tensorflow1.6.0 的项目,CPU 跑了三个多小时才完成一个 epoch,还得用 GPU。但这个版本的 TF 只能在 10 以下的 CUDA 平台,但是以前的 Pytorch 也要继续啊。所以需要在本地 Windows 下安装多个版本 CUDA,其实有两…

MySQL事务(简单明了)

目录 1. 事务的特性(ACID): 2. 事务的语法: 3. 隔离级别: 4. 保存点(Savepoints): 5. 示例: 1. 事务的特性(ACID): 原子性&#…

每日一练2023.11.27——考试座位号【PTA】

题目要求: 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码&#xff0c…

sCrypt 现已支持各类主流前端框架

sCrypt 现已支持各类主流前端框架,包括: ReactNext.jsAngularSvelteVue 3.x or 2.x bundled with Vite or Webpack 通过在这些支持的前端框架中集成sCrypt开发环境,你可以直接在前端项目里访问合约实例和调用合约,方便用户使用Se…

js用到的算法

1.对象数组中,对象中有对象,数组根据对象中的对象打平 [{indexValueMap: { 68443: 0, 68457: 0 },rowName1: 固定收益类,rowName2: 交易类,rowName3: 次级},{indexValueMap: { 68443: 0, 68457: 0 },rowName1: 固定收益类,rowName2: 交易类,rowName3: 中…