Unity基础——材质属性与功能详解

Unity基础二:Material材质、Texture纹理(贴图) 和 Shader着色器 1. Material材质 (shader的实例) 创建材质 : 给物体添加材质: 材质拖给物体对象的Mesh Renderer组件中的Materials中的Element 2. Texture纹理(贴图) 和 shader着色器 (渲染管线中的GPU图像算法程序) 3.物理着色器 4. Rendering Mode渲染模式 5. Main Maps ... 阅读详情
AI摘要

本文围绕Unity中的材质展开,介绍了材质的含义及使用方法,详细阐述了渲染模式、反照率、金属度等18种材质属性,包括其属性值、功能和使用方法,旨在帮助开发者在项目中更好运用材质,打造精彩3D世界。

一.材质

含义:材质是指用于定义物体外观和表面特性的一组属性集合。它决定了物体如何反射、吸收和透射光线,从而呈现出不同的视觉效果,如颜色、光泽、透明度、粗糙度等 。


二.材质使用方法

1.创建一个文件夹Materials保存各种材质

2.创建材质并修改参数

3.将材质直接拖放到需要材质的物体上


三.材质属性

        在 Unity 的 Inspector 面板中,可以看到当前球体材质名为 “sphere”,使用的 Shader 是 “Standard”(标准着色器),这是 Unity 中一种广泛应用的着色器,能够模拟多种真实世界的材质效果。

1.渲染模式(Rendering Mode)

  • 属性:当前设置为 “Opaque”(不透明),这是最常见的渲染模式,适用于不透明的物体,如石头、金属等。
  • 功能:决定了材质如何处理透明度和混合效果。
  • 使用方法:除了 “Opaque”,还有 “Cutout”(镂空)、“Fade”(渐变透明)、“Transparent”(透明)等模式。如果要创建有镂空效果的物体,可选择 “Cutout” 模式,并设置相应的透明度阈值;若要实现物体逐渐消失的效果,“Fade” 模式则比较合适。

2.反照率(Albedo)

  • 属性:这里显示为白色,它定义了材质的基本颜色。
  • 功能:反照率贴图控制物体表面反射光线的颜色,是材质外观的基础。
  • 使用方法:可以直接点击颜色框选择颜色,也可以拖入一张纹理贴图作为表面颜色。比如创建一个草地材质,就可以将草地纹理贴图赋予 Albedo 属性。

3.金属度(Metallic)

  • 属性:当前值为 0,表示该材质不是金属材质。取值范围是 0 到 1,0 代表非金属,1 代表完全金属。
  • 功能:用于模拟材质的金属特性,控制材质对光线的反射方式。
  • 使用方法:对于金属材质,如钢铁、黄金等,将该值调高,并配合合适的 Albedo 颜色和反射效果,就能模拟出逼真的金属质感。

4.光滑度(Smoothness)

  • 属性:当前值为 0.5,取值范围是 0 到 1,值越高表示材质表面越光滑。
  • 功能:影响材质的镜面反射效果,光滑的表面会产生更清晰的反射。
  • 使用方法:制作镜子时,将光滑度设为接近 1;而制作粗糙的墙面时,将其设为较低的值。

5.法线贴图(Normal Map)

  • 属性:目前未启用。法线贴图是一张包含表面法线信息的纹理。
  • 功能:在不增加模型多边形数量的情况下,模拟出表面的凹凸细节。
  • 使用方法:从资源库中找到合适的法线贴图,拖入该属性框中。例如,为一个平面添加岩石的法线贴图,就能让它看起来有岩石的凹凸质感。

6.高度贴图(Height Map)

  • 属性:未启用。高度贴图记录了材质表面的高度信息。
  • 功能:可以配合置换 shader 来实现更真实的几何形状变化,比如地形的高低起伏。
  • 使用方法:导入高度贴图后,需要在支持置换的 shader 中使用,以实现更复杂的几何效果。

7.遮挡贴图(Occlusion)

  • 属性:未启用。遮挡贴图记录了表面上哪些区域更容易被遮挡。
  • 功能:用于增强材质的阴影效果,使场景看起来更真实。
  • 使用方法:将遮挡贴图应用到材质上,它会根据模型的几何形状来调整光照,模拟出环境光遮挡的效果。

8.细节遮罩(Detail Mask)

  • 属性:未启用。
  • 功能:用于混合多个细节纹理,控制不同纹理在材质表面的显示区域。
  • 使用方法:结合多个细节纹理和遮罩贴图,可创建出更丰富的材质细节,如在墙面材质上添加污渍、划痕等细节。

9.发射(Emission)

  • 属性:当前颜色为黑色,即不发光。
  • 功能:使材质能够自发光,常用于制作灯光、火焰等效果。
  • 使用方法:点击颜色框选择发光颜色,或者拖入发光纹理贴图,调整强度滑块来控制发光的亮度。

10.平铺(Tiling)

  • 属性:X 和 Y 轴均为 1,决定了纹理在模型表面重复的次数。
  • 功能:用于调整纹理在模型上的覆盖密度。
  • 使用方法:如果想让纹理更密集,可增大 X 和 Y 的值;若希望纹理稀疏一些,则减小数值。

11.偏移(Offset)

  • 属性:X 和 Y 轴均为 0,控制纹理在模型表面的位置。
  • 功能:可以移动纹理在模型上的显示位置。
  • 使用方法:通过调整 X 和 Y 的值,可以将纹理在模型表面进行平移,以达到合适的视觉效果。

12.细节反照率(Detail Albedo x2)

  • 属性:未启用。
  • 功能:用于添加额外的细节纹理,与主反照率纹理混合,增强材质细节。
  • 使用方法:导入细节纹理后,调整混合参数,使其与主纹理自然融合,比如在地面材质上添加一些细小的石子纹理。

13.次要法线贴图(Normal Map)

  • 属性:未启用。
  • 功能:提供额外的法线信息,进一步增强表面的凹凸细节。
  • 使用方法:与主法线贴图类似,导入合适的法线贴图,与主法线效果叠加,创造出更丰富的表面细节。

14.镜面高光(Specular Highlights)

  • 属性:已勾选,启用镜面高光效果。
  • 功能:控制材质表面的高光显示,使物体看起来更有光泽。
  • 使用方法:若不需要高光效果,取消勾选即可。

15.反射(Reflections)

  • 属性:已勾选,启用反射效果。
  • 功能:让材质能够反射周围环境,增加真实感。
  • 使用方法:可通过调整反射探头等设置,来优化反射的效果和质量。

16.渲染队列(Render Queue)

  • 属性:当前设置为 “From Shader”,值为 2000。
  • 功能:决定了物体的渲染顺序,数值越小越先渲染。
  • 使用方法:在处理透明物体、粒子效果等需要特定渲染顺序的情况时,可手动调整渲染队列值。

17.启用 GPU 实例化(Enable GPU Instancing)

  • 属性:未勾选。
  • 功能:在场景中有大量相同物体时,可提高渲染性能。
  • 使用方法:当场景中有许多重复的模型,如森林中的树木,勾选该选项可减少渲染开销。

18.双面全局光照(Double Sided Global Illumination)

  • 属性:与双面物体的全局光照计算有关。
  • 功能:用于处理双面物体的光照效果,使物体两面都能正确接收和反射光照。
  • 使用方法:对于一些需要展示双面效果的物体,如旗帜、纸张等,可根据具体情况启用该功能。


四.结语

        希望本文能帮助开发者们在 Unity 项目中更好地运用材质,打造出更加精彩的 3D 世界。在实际开发中,不断尝试和调整这些属性,结合不同的纹理和模型,一定能实现令人满意的视觉效果。

unity中的材质(material)贴图(texture)着色器(shader)介绍 在unity中,材质(material)、贴图(texture)和着色器(shader)是构建和渲染3D对象外观的基本概念。 阅读详情

相关推荐

Unity - BakingSystem - 烘焙 - 阴影黑块

如果某个模型是只有一个单薄的片面,那么默认发射的射线碰撞检测到背面,就相当于碰撞到一个完全吸收光线的材质,不会有再次反弹,所以没有 全局光照的间接光照来补光,将会黑黑的。Double Side Global Illumination API 说明,就是是否给这个材质开启双面全局光照的设置。因此需要告诉 unity 烘焙系统,碰撞到这类材质时,无论他正背面都启用走材质表面反弹计算。unity 烘焙的时候,会对物件模型的表面法线的各个角度发射射线做采样。对应 Material 属性。

Jave.Lin 的学习笔记 3863

unity中的基本材质使用

unity材质

weixin_63794834的博客 8133

Unity与OpenGL中的材质系统详解

本文探讨了Unity材质系统与OpenGL实现方式的对比。Unity提供了直观的材质系统,通过.mat文件存储颜色、纹理等属性,并关联着色器实现渲染效果。相比之下,OpenGL需要开发者手动管理材质数据。文章展示了一个OpenGL材质类的实现方案,包括着色器编译、属性设置和纹理绑定功能,使开发者能够在OpenGL中模拟类似Unity的材质工作流程。

软件科学-郝学胜 1377

【Unity3D】材质 Material ( 材质简介 | 创建材质 | 设置材质属性 | 对 3D 物体应用材质 | 资源拖动到 Inspector 检查器中的 Material 属性中 )

一、材质 Material 简介、 二、创建材质、 三、设置材质属性、 四、对 3D 物体应用材质、 五、资源拖动到 Inspector 检查器中的 Material 属性中

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1万+

Unity纹理及材质

Unity中的材质是很重要的一个学习部分,很多人学了很久之后还是不会调材质,导致搭建出来的而场景显示有问题。其实材质这一部分要掌握的知识并不多,重要的是多做、多看、多尝试。 学习建议及心得分享 https://www.paws3d.com/lesson/um-0101/ 创造及添加材质的工作流程 https://www.paws3d.com/lesson/um-0102/ 材质属性面板的...

qq_35037137的博客 1442

unity识别地形材质

前段时间有一个小需求,模拟汽车烟尘烟尘尾迹仿真的算法,其中有一部分是需要判断汽车行驶的地形材质,根据地形材质来实现不同的效果,感觉这个功能还不错,于是拿出来给大家分享与交流。 其中借鉴了一个大佬的方法:http://answers.unity3d.com/questions/34328/terrain-with-multiple-splat-textures-how-can-i-det.html...

qq_40097668的博客 3330

Unity基础:材质Material与Shader的基础关联用法

本文摘要: 《Unity基础:材质Material与Shader的基础关联用法》是Unity工程师成长教程系列的重要章节。文章详细解析了材质与Shader在Unity游戏开发中的核心概念、技术原理和实践应用。重点内容包括:材质与Shader的基础定义及其重要性,典型应用场景分析,Unity核心架构图解,关键技术点(组件化设计、生命周期函数等),以及实践示例代码(游戏对象控制、UI交互等)。本文为Unity开发者提供了从理论到实践的完整学习路径,是掌握Unity渲染系统的关键指南。

编程世界如山海,探索不止。 1万+

关于unity中材质的导入

在项目中创建文件夹,右击选择创建(create)材质(material),得到一个材质球,然后我们在文件夹内导入上述的图片(上述五个只要有的都可以导入,其他的如displacement不需要导入),之后打开材质球,如下图所示,将shader改为Autodesk Interactive类型,之后将各个图片直接拖拽至对应的方框,即可生成相应的材质。下载得到的是一个压缩包,将其解压至文件夹内即可。要注意的是,有的材质在使用过程中是不支持商业活动的,在使用材质的过程中请务必关心此方面的内容。2.材质的下载及导入。

YeagerYuan的博客 1981

Unity 3D基础:3D模型的导入与材质赋值

本文是《Unity工程师成长之路教程》系列中关于3D模型导入与材质赋值的核心指南。详细讲解了3D模型导入的基本概念、技术原理和实际应用场景,强调其在提升开发效率、保障游戏性能和解决问题能力方面的重要性。通过架构图示和C#代码示例,阐述了Unity组件系统、生命周期函数等关键技术点,并提供了环境配置和基础实践指导。内容包括模型导入流程、材质赋值方法以及常见应用如游戏对象控制和UI交互的实现方案,为Unity开发者掌握3D资源处理提供系统性学习路径。

输出倒逼输入,写作驱动成长。 6538

Unity 700种预设材质包快速上手指南

本文还有配套的精品资源,点击获取 简介:Unity是领先的3D游戏开发引擎,其材质系统是塑造游戏视觉的关键。本材质包提供了700种预设,包括自然材质、人造材质和特殊效果,采用物理基础渲染(PBR)技术,简化了材质创建和调整过程。配合Substance插件,用户可以实时编辑和定制这些材质,从而提升游戏视觉效果,并加快开发速度。 1. Unity引擎和材质系统简介 ...

weixin_42524864的博客 1686

用VFP计算 CRC-16 Modbus 校验位

1. Modbus是一种串行通信协议,最初由Modicon(目前属于施耐德电气公司)于1979年开发2. Modbus协议是应用在Modicon产品上的,后来才被移植到其他产品上3. Modbus协议的通信接口可以有多种选择,如RS232、RS485、以太网等。

lddnzx的博客 518

Unity如何批量修改材质的属性

Unity导入fbx资源文件的时候,需要修改材质的某个属性,其实修改某个属性为同一个值还是比较简单的,只需要全选所有的材质,然后在Inspector里面进行修改就行了,就会批量修改所有的材质属性。 如果修改很多的材质,每个属性都不一样呢?我这边写了一个脚本来进行操作。具体的步骤为: 1、根据材质目录获取所有的材质路径 2、根据材质路径加载所有的材质,并对每个材质修改属性。 3、保存修改的材质。 下面展示了我在修改烘焙材质的例子,大家可参考。主要我们Emission下面的Color贴图跟Albe

XR风云 5975

vivado中出现ERROR: [Labtools 27-2220]检测不出开发板

这个错误可能是由于 Vivado 工具中的 cs_server.exe 文件没有正确安装或者文件路径不正确导致的。你可以尝试以下步骤来。时间: 2023-08-16 12:05:50 浏览: 767。希望以上方法能够帮助你。

qq_40510975的博客 2386

Unity-Material去除无用的材质属性

当我们在unity中使用材质的时候,我们会发现,当这个材质切换到上一个shader的时候,我们那个shader的属性都会保存,包括贴图,在上个项目的优化过程中,我们TA也发现,一个material材质依赖了它没有的属性贴图,这个是unity的自身设计导致,但是如果它依赖了其他的资源,那么就可能造成不必要的资源冗余等问题,简单来说就是寻找一种方法可以将材质中保存的无用属性剔除,在看了...

Rhett 4396

Cursor赋能Qt C++:从环境配置到项目构建的AI开发新范式

本文详细介绍了如何利用Cursor工具链提升Qt C++开发效率,从智能环境配置到CMake项目构建的全流程实践。通过AI辅助编程、Qt生态优化及高级调试技巧,开发者可快速完成从传统开发到AI驱动的新范式转换,显著缩短项目搭建时间并提升代码质量。

weixin_30329623的博客 546

【点云可视化】自制ply文件并使用open3d可视化点云

使用open3d可视化点云,需要将点云制作为ply文件传入函数中。 安装open3d 直接使用pip安装 pip install open3d ply文件 ply文件的结构为:文件头+数据内容,文件头从 ply 一行开始,到 end_header 为止,里面定义了此 ply文件中数据的组织形式,包括数据类型和个数。后面是点云的坐标信息及每个点的颜色属性的,参考自 如下为具有5个点的点云,end_header后每一行表示一个点的x,y,z,R,G,B信息 ply format ascii 1.0 comme

这个人很蓝 1万+

Unity处理材质球过期属性工具

Unity中的材质属性被序列化以后,就会一直存储在资源中,即使该属性删除后,它的序列化值以及引用关系也不会被丢掉,所以我们经常会发现,当我们使用一个和之前命名相同的属性时,原来的属性值或资源就会被自动赋值,这是因为材质中一直保持这种关系;但是,有些时候我们为了优化或者其它需求,想要去清理掉这些引用关系,如下,给出了清理某个文件夹下所有材质过期属性的一个工具; 参考:游戏资源工具(一):Unity中处理材质球过期属性工具 using UnityEngine; using UnityEditor; p.

mozhi 1930

国产数据库全解析:openGauss、OceanBase、TiDB与KingbaseES的核心优势与应用场景指南

本文将深入剖析openGauss、OceanBase、TiDB和KingbaseES这四款主流国产数据库的核心内容,并针对国产化过程中给出使用建议,以帮助企业根据自身需求选择合适的数据库解决方案。国产数据库在性能、扩展性、兼容性、安全性等方面展现出强大实力,能够满足不同行业、不同场景的需求。企业在进行国产化过程中,应充分考虑业务特点、技术栈、团队能力等因素,结合上述分析,选择最适合自身的国产数据库产品。随着国产数据库技术的持续发展与生态完善,它们将成为推动企业数字化转型、保障数据安全的重要力量。

java专栏 8779

unity 材质基础与材质动画

需求:播放一个材质动画时,需要还原到开始播放前的样子,仅对某Property生效,没设置过MPB需要用Renderer.sharedMaterial.GetXXXX()获取材质属性原始值。Q:Animation动画不知道哪个是KeyWord没有获取接口,只SetProperty并不能起效,如果通过脚本提供的bool值并SetKeyWord进行K值无法热更,A:期望能有接口获取实际值面板值 (有mpb就获得mpb否则返回material原始值)共用材质,全都改,非运行时不能创建.material。

PA_的博客 558

【读论文】ASR大模型动态热词新方案

大型语言模型(LLMs)以其卓越的通用知识和推理能力重塑了 AI 领域,但它们在处理特定领域或用户的专有词汇(即“热词”)时,往往表现出“选择性失忆”。传统的 RAG 或 Prompting 方案在实时性和准确性上存在瓶颈。阿里的《Hotword Model for Large Models》论文提出了一种“神经插件”方案,它能够在不修改基座模型权重的前提下,动态、精准地将热词能力注入到生成过程中。本文将从架构设计、训练范式到推理逻辑,全方位拆解这一技术的内核,并探讨其在工业级应用中的价值。

kakaZhui的博客 290

8-bit量化在YOLOv11中的部署实践-(使用PTQ、QAT量化技术实现模型体积压缩和推理加速)

本文系统介绍了YOLOv11模型量化技术,主要包括三个核心部分:首先阐述模型量化的基础理论,包括量化分类、数学原理和性能影响;其次分析YOLOv11架构特点及其量化敏感层;最后详细讲解训练后量化(PTQ)的具体实现流程。研究表明,8-bit量化可使YOLOv11模型大小缩减至1/4,推理速度提升1.7-2.3倍,精度损失控制在1%以内。文章特别强调了校准算法选择(如最小最大值法和KL散度法)对量化效果的关键影响,并提供了完整的代码实现示例,为YOLOv11的高效部署提供实用指导。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1625

Unity基础:材质与纹理入门——给物体穿上“衣服“

本文介绍了Unity中材质与纹理的基础概念和应用方法。主要内容包括: 材质与纹理的基本概念:材质定义物体表面属性,纹理提供视觉细节 创建和应用材质:如何在Unity中创建材质、设置材质参数并应用到物体上 纹理的导入与设置:获取纹理资源、导入Unity并进行合理配置 文章通过类比和实例解释了Shader、材质与纹理的关系,详细介绍了Standard Shader的参数设置,并提供了纹理资源的获取途径。适合Unity初学者学习如何为3D物体赋予丰富的视觉效果。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 1万+

【26美赛A题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

本文介绍了2026年美赛数学建模A题的解题思路与方法。A题通常属于连续型系统问题,重点在于构建可解释的机理模型,通过将现实机制转化为动态方程进行仿真预测。文章提出了通用建模路线,包括机理抽象、模型假设、动态建模、参数识别、系统仿真和情景预测六个阶段。专栏将提供从机理到方程的系统建模思路、参数标定方法、Python/Matlab实现代码以及高分论文模板。内容适合参加2026美赛A题、偏重物理/工程建模方向的参赛队伍,旨在提升机理建模能力。后续将更新完整题解和源码。

一键难忘的博客 2004

PrimoToon材质系统详解:基础、面部、武器三种材质类型完全指南

PrimoToon是一款为Unity内置渲染管线开发的Shader系统,旨在完美复刻米哈游《原神》的卡通渲染风格。本指南将全面解析其核心的基础、面部和武器三种材质类型,帮助开发者快速掌握这套强大的卡通渲染解决方案。 [![PrimoToon卡通渲染效果](https://raw.gitcode.com/gh_mirrors/pr/PrimoToon/raw/06fbcbefa65064b52c6

gitblog_00734的博客 1100

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Unity FBX材质映射完全指南:AsciiFBXExporterForUnity PBR材质导出技巧

AsciiFBXExporterForUnity是一款强大的工具,能够将任何Unity游戏对象导出为FBX ASCII格式,轻松实现Unity与其他3D软件之间的模型和材质互导。本文将为你详细介绍如何使用该工具实现PBR材质的完美导出,让你的模型在不同软件中保持一致的视觉效果。 ## 为什么选择AsciiFBXExporterForUnity进行材质导出 在3D工作流中,材质的准确传递一直是开

gitblog_00004的博客 1030

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

unity材质球属性无法修改

unity材质球属性无法修改出现的问题情况:解决办法 出现的问题情况: 如图,unity材质球属性是灰色的无法修改 解决办法 找到材质球然后对原来的材质球进行复制(Crtl+D),再将复制后的材质球拖到Meshrender下更换elements,即更换为赋值后的材质球 此时属性不再是灰色,可以对其进行修改 ...

ppinkgirll的博客 6876

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Unity基础——组件Transform,Mesh—filter和Mesh—Renderer详解
下一篇: Unity基础——光照系统深度解析:从基础属性到高级应用
Unity黑马王子
博客等级 码龄4年 1846粉丝 181原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值