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

 【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)导入资源

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索工业4.0:数字孪生如何重塑工业生产流程?

在过去的几十年里,工业生产经历了从机械化、自动化到数字化的巨大转变。随着工业4.0的到来,我们正处于第四次工业革命的边缘,这次革命将由数字孪生技术引领。本文将深入探讨数字孪生在工业生产中的应用和潜力。 数字孪生(Digital …

【1++的C++进阶】之C++11(一)

👍作者主页:进击的1 🤩 专栏链接:【1的C进阶】 文章目录 一,前言二,列表初始化三,声明自动类型推断(auto)decltypenullptr 四,右值引用五,完美转发…

Web学习笔记-React(组合Components)

笔记内容转载自 AcWing 的 Web 应用课讲义,课程链接:AcWing Web 应用课。 CONTENTS 1. 创建父组件2. 从上往下传递数据3. 传递子节点4. 从下往上调用函数5. 兄弟组件间传递消息6. 无状态函数组件7. 组件的生命周期 本节内容是组件与组件之间的组合&#…

如何判断一篇论文有没有被SCI收录?

打开 Web of Science 网站设置 SCI 筛选条件(因为 WoS 收录的不只是 SCI) 3. 输入论文题目,点击搜索

WavJourney:进入音频故事情节生成世界的旅程

推荐:使用 NSDT场景编辑器快速搭建3D应用场景 若要正确查看音频生成的强大功能,请考虑以下方案。我们只需要提供一个简单的指令,描述场景和场景设置,模型就会生成一个扣人心弦的音频脚本,突出与原始指令的最高上下文相…

virtualbox 扩展磁盘大小

此处设置完成后,还需要进入虚拟机,实际扩展磁盘大小 参考 https://zhuanlan.zhihu.com/p/319431032

大数据课程K22——Spark的SparkSQL的API调用

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的通过api使用SparkSQL; 一、通过api使用SparkSQL 1. 实现步骤 1. 打开scala IDE开发环境,创建一个scala工程。 2. 导入spark相关依赖jar包。 3. 创建包路径以object类。 4.…

Ubutnu python2与python3切换

python -V #查看默认版本 Python 2.7.17 python3 -V #查看电脑3的版本 Python 3.6.9 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 #设置两个版本的…

[杂谈]-从硬件角度理解二进制数

从硬件角度理解二进制数 文章目录 从硬件角度理解二进制数1、概述2、模拟电路3、数字电路4、逻辑电平5、TTL 器件的电压水平6、总结 1、概述 二进制数以 2 为基数系统表示,该系统只有两 (2) 个不同的数值,即 0 和 1。就像最常见的那样,十进制…

Redis I/O多路复用机制

一、基础回顾 1.1 多路复用要解决什么问题 并发多客户端连接场景,在多路复用之前最简单和典型的方案就是同步阻塞网络IO模型。 这种模式的特点就是用一个进程来处理一个网络连接(一个用户请求),比如一段典型的示例代码如下。 直接调用 recv 函数从一个 socket 上…

Claude 2,它有 GPT-4 一些无法超越的能力

文章目录 场景1:处理长文本场景2:上传文件场景3:进行冗长的多轮对话场景4:我的提示词里涉及2021年9月之后的信息 场景1:处理长文本 和 ChatGPT 相比,Claude 2 最大的优势就是它高达 10 万的 Token 数量。要…

类和对象(1)

文章目录 1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符和封装4.1访问限定符4.2封装 5.类的作用域6.类的实例化6.2结构体内存对齐规则 7.this指针7.2this指针的特性 封装(补充) 1.面向过程和面向对象初步认识 C面向对象但不纯面向…