【Unity基础】2.网格材质贴图与资源打包

2023-11-03

 【Unity基础】2.网格材质贴图与资源打包

    大家好,我是Lampard~~

    欢迎来到Unity基础系列博客,所学知识来自B站阿发老师~感谢 

(一)网格材质纹理

    第一次接触3D物体的话,会觉得好神奇啊,这个物体究竟是由什么组成的呢?其实3D物体基本就是由网格,材质和纹理3个部分构成的

(1)网格

    那什么是网格?首先需要知道我们看到的3D物体,实际上是由一个个小的三角形组成的,我们可以在Unity编译器中,在Scene页签下方选择一种Shaded Wireframe图形线框模式,就可以很清晰的看到了,三角形的数量越多,图形越精致同时GPU的渲染压力越大,像一个球就需要多个三角形来组成,而一个立方体只需要12个三角就可以了

     无论是球还是正方体,都是由一个个小三角形组成。那问题很多的同学可能会问,为什么是三角形呢?我立刻ChatGpt一下:

    因为三角形可以在几何上更加精确地描述物体的形状和表面细节。此外,三角形也更容易处理和渲染,因为它们具有确定的顶点和法线。虽然四边形和其他多边形也可以用于建模,但在使用现代渲染技术时,三角形仍然是最常见的面形式

    额,绕远了...好所以网格是什么呢?其实就是描述这些一个个三角形,顶点数据,纹理坐标,法线信息等等的一些数据来描述一个物体的表面。之前我们学openGL的时候有接触到【openGL2021版】obj格式文件

(2)材质

    好了什么是材质呢?

物体的物质的性质、特征或组成。材质可以是金属、塑料、木材、玻璃、陶瓷、纺织品等等。正确选择材质可以决定物体的质量、外观、特性和使用寿命。材质也可以用于表示3D模型的外观和质感。在计算机图形学中,材质通常用纹理、颜色、反射率、粗糙度、透明度等参数来描述

     简单来说,足球和保龄球长得不一样吧?虽然都是个球,但是我们要怎么表现它们的不同,那就是材质的作用

     在Unity中,我们可以给物体新建一个材质挂上去:首先在Assert目录下右键选择create创建,然后在目录下选中Material材质

    材质有很多属性,我们先对其Albedo反照率(颜色),进行设置选一个喜欢的颜色就可以。下面我就创造了一个红色和一个蓝色材质

     那怎么让我们场景中的物体使用这个材质呢?很简单啊,直接拖过去就行:

     哇,一下就变色了,是不是很神奇。设置完之后我们可以看到,物体右侧的组件中,Mesh Renderer 网格渲染中,就多了一个我们刚才创建的材质信息

    这里有一个小对勾,如果我们取消勾选,那么这个物体就不会被渲染出来

     总而言之,材质的作用,就是使物体看起来更真实,记录如像金属一样的光泽,像玻璃一样的反射,表面带有什么花纹,是否有凹槽突起等信息

(3)纹理贴图

   那纹理又是啥呢?因为我们现实生活中,物体很少会遇到纯色的。肯定每一个物体,甚至物体的每一个地方都有区别,纹理也是材质的一个属性

    那怎么实现这个效果呢?就需要美术同学出一张纹理图,来展示这个物体的长相。我们刚才说到网格中会存在纹理坐标,就是为了描述每个小三角形对应纹理的那一块区域用的

    为了展示我去百度找了一个地球的纹理更直观些,看上去就像摊开的地球对吧~

Albedo反照率贴图

     那如果我想把这个纹理挂到unity上面的物体中需要怎么做呢?我们只需要把纹理资源拖到Assert目录下

    然后在材质设置反照率的左侧有一个小按钮,点开就可以选中我们的纹理,给物体添加皮肤啦~

Normal Map 法线贴图

    比如我们要创建一个铁锈状的物体,首先需要给物体贴上albedo材质皮肤

   把这个材质挂在cube上,我们可以看到这个矩形就有了一些锈迹,但感觉还是差了一些东西

    差什么呢?没错就是那种凹凸不平的感觉,而我们的法线贴图就是干这个活的。我们给材质的normalMap属性附上法线贴图,效果明显就真是了很多

Metallic和Specular

    我们可以看到编辑器中还有Metallic和Specular两个属性

     Metallic代表的是物体的金属度,属性值越靠近0则代表越不像金属,越靠近1则代表越像金属

     Specular是光滑度,0越光滑,1越粗糙,大家可以拖动进度条试一下~

(二)导入和导出资源包

(1)资源目录

    Unity的资源(模型,场景,脚本)等都保存在Assert目录下,我们随便选中一个资源,右键Show In Explore就可以在Window文件夹中看到我们的资源目录

    燃鹅,我们除了看到在编辑器创建的文件之外还看了许多奇奇怪怪的.meta文件,这都是啥?

     遇事不决问GPT:

在Unity中,每个资源文件(如场景、材质、纹理、声音等)都会有一个对应的meta文件。这个meta文件包含了资源的相关信息,如名称、UUID、依赖项、标签、修改时间等。

meta文件的主要作用是为了让Unity在处理资源时更加高效和可靠。具体来说,meta文件可以:

1. 确认资源的唯一性:由于Unity中允许多个文件使用相同的名称,meta文件的唯一UUID可以确保每个资源都具有唯一的身份信息。

2. 记录资源的依赖关系:meta文件可以记录资源之间的依赖关系,当一个资源被修改时,Unity可以自动更新依赖该资源的其他资源。

3. 存储资源的编辑状态:meta文件可以记录资源的编辑状态,包括最后一次修改的时间、作者、标签、注释等,方便开发者进行版本管理和协作开发。

    简单来说就是一个资源文件的Log,由unity引擎自身管理,需要注意的是,如果删除了meta文件,Unity会重新生成一个新的meta文件,但是这个新文件的UUID可能与之前的不同,导致资源的引用出现问题。因此,一般不建议手动删除meta文件

(2)导出资源

    OK如果我们在一个场景辛辛苦苦编译好的内容,想分享给别人需要如何处理呢?很简单只需要右键Export package就可以了

    比如我想把整个Assert的内容分享出去,那就右键Assert文件夹,然后导出

    导出后可以看到一个unitypackage后缀的文件,这就是我们资源的所有信息

(3)导入资源

    嗯...导入这个资源包的方式大家不妨猜一下。没错!就是拖进去哈哈哈哈哈哈哈~方便展示我们先创建一个新的空项目,然后再拖进去就可以看到我们的资源啦:

好啦今天就到这里,感谢阅读!!!
点赞,关注!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Unity基础】2.网格材质贴图与资源打包 的相关文章

  • Unity-AR 简介

    Unity AR 简介 现有Unity AR Sdk ARKit 苹果推出的AR开发平台 ARCore Google 推出的增强现实 SDK ARFoundation ARFoundation是ARKit XR插件和ARCore XR插件
  • FBX导入Unity中模型没有材质的处理

    一 3dMax导出FBX时的注意事项 导出时 确保maps文件存在 里面放着fbx用到的image 二 在Unity中的设置 1 文件拖入Unity的Assets文件夹中 2 查看模型的材质是否存在 如下所示 材质为None 此时拖入sce
  • Unity动画控制器animator.CrossFade

    需要特别注意 1 CrossFade虽然可以不用任何逻辑来链接而直接跳转 但是CrossFade只能覆盖其他动画 当当前动画播放完毕而没有跳出这个动画时再次调用CrossFade将会失败 造成动画依旧停在原位 参数animator Cros
  • Unity Shader入门精要第七章 基础纹理之遮罩纹理

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 遮罩纹理 mask texture 是本章要介绍的最后一种纹理 它非常有用 在很多商业游戏中 都可以见到它的身影 那么什么是遮罩呢 简单来讲 遮罩允许我们
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • 【Unity】按Esc进入操作菜单

    本文章是基于如下视频的自我总结 https www youtube com watch v JivuXdrIHK0 步骤如下 1 在Canvas 界面添加一个Panel Panel中添加一个按钮 调整按钮的大小为合适大小 调整字体的大小为合
  • Unity保存图片到相册

    Unity保存图片到Android相册 Java 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • unity3d 自定义的图片无法放入source image中

    须将图片的texture type改为 sprite
  • unity3d image组件不显示

    需要将UI组件放到画布下面
  • 【UE】制作熔岩星球材质

    效果 步骤 1 新建一个工程 创建一个Basic关卡 添加第三人称游戏和初学者内容包资源到内容浏览器 2 新建一个材质 这里命名为 M Sun 打开 M Sun 添加两个Texture节点 纹理分别为 T Rock Basalt N 和 T
  • unity小球跟随音乐节奏放大缩小和改变颜色

    放在小球身上 设置对应组件即可 using System Collections using System Collections Generic using Unity VisualScripting using UnityEngine
  • 【Unity】如何让Unity程序一打开就运行命令行命令

    背景 Unity程序有时依赖于某些服务去实现一些功能 此时可能需要类似打开程序就自动运行Windows命令行命令的功能 方法 using UnityEngine using System Diagnostics using System T
  • U3D游戏开发中摇杆的制作(UGUI版)

    在PC端模拟摇杆 实现玩家通过控制摇杆让玩家移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine using Unity
  • 游戏开发创建操作之玩家信息系统的建立

    游戏一般都需要玩家信息系统 那么我们应该如何搭建玩家信息系统 接下来我将展示一种简单的方法 完整代码如下 using System Collections using System Collections Generic using Uni
  • 游戏开发常见操作梳理系列之——玩家信息的显示系统

    在游戏中 有不少游戏在左上角会出现玩家的头像和等级以及血量 这就是玩家的信息显示系统 那么这些是如何制作的呢 接下来我将讲讲代码的操作 其它操作我会在其它笔记中一一说明 敬请期待 信息的显示相当简单就是控制一些UI 然后在其它系统里面填写相
  • 游戏开发常见操作梳理之NPC药品商店系统(NGUI版)

    后续会出UGUI Json的版本 敬请期待 游戏开发中经常会出现药品商店 实际操作与武器商店类似 甚至根据实际情况可以简化设置 废话不多说 直接上代码 药品商店的源码 using System Collections using Syste
  • 游戏开发常见操作梳理之小地图的制作

    游戏中一般存在小地图系统 实际上就是设置一个新的摄像机放置在玩家的正上方 然后在小地图上显示新摄像机看见的东西就可以了 在小地图上一般存在放大地图和缩小地图的按钮可以方便放大和缩小地图 这些操作是如何实现的呢 接下来直接上核心代码 usin
  • 游戏开发之常见操作梳理——武器装备商店系统(NGUI版)

    游戏开发中经常出现武器商店 接下来为你们带来武器装备商店系统的具体解决办法 后续出UGUI Json版本 敬请期待 武器道具的具体逻辑 using System Collections using System Collections Ge
  • 【UE材质】通过曲线图谱和颜色曲线来控制材质运动

    目录 效果 步骤 一 实现线性运动 二 实现非线性运动 效果 步骤 一 实现线性运动 1 新建一个材质并打开 设置材质域为用户界面 混合模式为半透明 在材质图表中添加如下节点 此时我们就可以通过数值改变圆圈纹理的缩放 但是缩放会伴随着纹理平

随机推荐

  • iOS架构-组件化(Carthage管理工具)

    一 Carthage项目管理工具使用 Step 1 安装 更新Homebrew工具 1 usr bin ruby e curl fsSL https raw githubusercontent com Homebrew install ma
  • 遍历列表中的字典并取出其中的值报错string indices must be integers

    今天写爬虫的时候遇到一个问题 为了方便看我截取出其中的一部分放到测试文件中测试 我想要的是使用for循环遍历列表中的每一个字典然后取出其中某个key对应的value值 但是却报错了 报错显示string indices must be in
  • Python 数据降噪处理的四种方法——均值滤波、小波变换、奇异值分解、改变binSize

    Python 数据降噪处理的四种方法 均值滤波 小波变换 奇异值分解 改变binSize github主页 https github com Taot chen 一 均值滤波 1 算法思想 给定均值滤波窗口长度 对窗口内数据求均值 作为窗口
  • 三基色配色表java_【调色】颜色配色表 适合重彩搭配用

    三基色是指红 绿 蓝三色 各自对应的波长分别为700nm 546 1nm 435 8nm 原色 又称为基色 即用以调配其他色彩的基本色 原色的色纯度最高 最纯净 最鲜艳 可以调配出绝大多数色彩 而其他颜色不能调配出三原色 三原色通常分为两类
  • mysql怎么更新单一值_MySQL 如何快速全表更新某个字段值

    这个问题似乎没有什么好的解决方法 有个朋友提示 能否将1千万条记录拆分成多个部分 并发更新 这种比单纯的一条SQL全表更新要快一些 真的是这样吗 我做了一个实验 1 环境配置 机器配置 16核 32G MySQL 版本 5 7 19 1主2
  • 2-蛇形矩阵

    蛇形矩阵 首先我们来看问题 上面这个矩阵我们要怎么将它输出呢 我们仔细观察这个矩阵 不难发现它是有一定规律的 它的数字沿着一条蛇一样弯曲排布 那么问题来了 我们在电脑中输出都是以一行一行这样来输出的 这个矩阵的顺序明显不符合以行为参考时的输
  • 利用MMPose进行姿态估计(训练、测试全流程)

    前言 MMPose是一款基于PyTorch的姿态分析开源工具箱 是OpenMMLab项目成员之一 主要特性 支持多种人体姿态分析相关任务 2D多人姿态估计 2D手部姿态估计 动物关键点检测等等 更高的精度和更快的速度 包括 自顶向下 和 自
  • C语言做的一个简单的系统

    这个适合初学者去学习 include
  • idea的控制台无法输入

    1 进入help gt Edit Custom VM Options 2 添加 Deditable java test console true 然后重启IDEA即可生效
  • 机器学习:集成学习

    一 集成学习算法简介 1 什么是集成学习 集成学习通过建立几个模型来解决单一预测问题 它的工作原理是生成多个分类器 模型 各自独立地学习和作出预测 这些预测最后结合成组合预测 因此优于任何一个单分类的做出预测 2 复习 机器学习的两个核心任
  • 死锁的成因和对应的解决方案

    目录 一 什么是死锁 二 产生死锁的三个典型场景 案例一 一个线程一把锁 案例二 两个线程两把锁 死锁原因分析 解决办法 案例三 N个线程M把锁 解决办法 三 形成死锁的四个条件 一 什么是死锁 所谓死锁 是指多个进程在运行过程中因争夺资源
  • mysql中脏读,幻读,不可重复读是什么意思及其解决办法

    mysql中脏读 幻读 不可重复读是什么意思 https blog csdn net lafengwnagzi article details 80660631 一个事务读到另外一个事务还没有提交的数据 我们称之为脏读 解决方法 把事务隔离
  • v-if与v-for的不共用问题

    v for的优先级比v if高 所以会优先执行v for 如果你需要v if与v for共用的话 需要把v if放在容器上 ul li user name li ul 这一段代码中 会先去循环v for 循环后再循环一次 对v if的进行显
  • 华为Android10怎样root,华为手机怎么root?详细的root教程在此

    随着华为手机的热销 相信不少机友都入手了华为手机 华为手机有华为和荣耀两个系列 那华为手机怎么获取root权限呢 很多入手了华为手机的朋友都在纠结于root权限获取的问题之上 因为找不到合适的华为手机root的方法 为此 小编为大家带来了华
  • 一图让你明白爬虫与反爬虫进化过程

    爬虫与发爬虫的厮杀 一方为了拿到数据 一方为了防止爬虫拿到数据 谁是最后的赢家 重新理解爬虫中的一些概念 爬虫 自动获取网站数据的程序 反爬虫 使用技术手段防止爬虫程序爬取数据 误伤 反爬虫技术将普通用户识别为爬虫 这种情况多出现在封ip中
  • 颜色分类Ⅱ

    题目 方法一 分治法 算法思路 每次选定一个中间的颜色 这个中间的颜色用给出的k来决定 将小于等于中间的颜色的就放到左边 大于中间颜色的就放到右边 然后分别再递归左右两半 代码思路 递归函数设置四个参数 序列需要处理区间的左右端点和处理的颜
  • async、await 实现原理

    JavaScript 异步编程回顾 由于 JavaScript 是单线程执行模型 因此必须支持异步编程才能提高运行效率 异步编程的语法目标是让异步过程写起来像同步过程 1 回调函数 回调函数 就是把任务的第二段单独写在一个函数里面 等到重新
  • 【程序员面试金典】输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。

    题目描述 输入一颗二叉树的跟节点和一个整数 打印出二叉树中结点值的和为输入整数的所有路径 路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径 注意 在返回值的list中 数组长度大的数组靠前 struct TreeNode
  • 多个主机节点上的Hyperledger Fabric

    Hyperledger Fabric是由Linux Foundation托管的业务区块链项目 它是一个 分布式总账解决方案平台 以模块化架构为基础 提供高度机密性 弹性好 灵活性和可扩展性 它旨在支持不同组件的可插拔实现 并适应整个经济生态
  • 【Unity基础】2.网格材质贴图与资源打包

    Unity基础 2 网格材质贴图与资源打包 大家好 我是Lampard 欢迎来到Unity基础系列博客 所学知识来自B站阿发老师 感谢 一 网格材质纹理 第一次接触3D物体的话 会觉得好神奇啊 这个物体究竟是由什么组成的呢 其实3D物体基本