第二十四章 Unity 纹理贴图

这篇具有很好参考价值的文章主要介绍了第二十四章 Unity 纹理贴图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通常情况下,3D网格模型只能展示游戏对象的几何形状,而表面的细节则纹理贴图提供。纹理贴图通过UV坐标“贴附”在模型的表面。当然,这个过程不需要我们在Unity中完成,而是在建模软件中完成的。通常情况下,我们通过3ds max或者maya制作完网格模型后,需要进行一个“UV”拆分的操作,操作完毕后就可以渲染出一张UV贴图,剩下的工作就是使用3D绘制软件来绘制这样UV贴图。最后,我们将模型和UV贴图一起导出FBX文件,并导入到Unity中使用。在Unity中,纹理贴图是作为材质的一部分来使用的。因此,我们可以在Unity中单独创建材质,然后赋予游戏对象上面。但是,对于美工人员制作好的带有贴图的模型文件,我们直接导入后,就会自动将贴图作为材质绑定到该模型上面。还记得我们之前使用的“阿丽塔”的模型文件嘛,如下所示:

第二十四章 Unity 纹理贴图

左边的就是我们的FBX文件,右边的就是我们的纹理贴图文件。

我们点击这个FBX文件上面的三角箭头展开这个文件。

第二十四章 Unity 纹理贴图

我们看到里面包含两个文件,一个是材质球,一个是网格模型。

我们点击材质球,查看它的Inspector检视视图。

第二十四章 Unity 纹理贴图

我们可以看到在“Albedo”基础色哪里使用了一张纹理贴图,我们点击这个纹理贴图。

第二十四章 Unity 纹理贴图

就会发现在Project视图中“高亮”显示对应的贴图。

如果我们将模型拖动到Scene视图中,就会看到完整的模型呈现了。

第二十四章 Unity 纹理贴图

旋转一下,

第二十四章 Unity 纹理贴图

我们点击Scene视图中的“阿丽塔”游戏对象,查看它的Inspector检视视图

第二十四章 Unity 纹理贴图

在“Mesh Renderer”组件下面就能看到对应的材质,在材质中也能看到Albedo纹理贴图。游戏对象本来就是由模型文件实例化而来的,因此他们在数据上肯定是相同的。

接下来,我们继续介绍纹理贴图。纹理贴图本质就是一张图片而已,因此它作为一种资源文件可以直接导入到Unity的Assets文件夹。Unity中使用图片的地方有很多,除了作为模型纹理贴图之外,在2D游戏中作为“精灵”来处理,还有在粒子系统中也会用到图片,当然UI界面也需要图片,我们在编辑地形和植被的时候,也使用到了纹理贴图。

理想情况下,纹理尺寸大小应该是每边为 2 的幂(即 2、4、8、16、32、64、128、256、512、1024、2048 像素 (px),以此类推)。在 Unity 中可以使用 NPOT(非 2 的幂)纹理大小。但是,NPOT 纹理大小通常需要稍微多一点的内存,并且 GPU 的采样速度可能更慢,因此,只要有可能,最好使用 2 的幂大小以提高性能。Unity 可读取以下文件格式:BMP,EXR,GIF,HDR,IFF,JPG,PICT,PNG,PSD,TGA,TIFF。这里需要大家注意的,Unity之所以能够支持这么多的格式,主要是Unity会这些格式的图片进行二次处理。也就是说,Unity并不会在程序中直接使用该格式下的原图。在Unity文件结构中的Library文件夹的时候也介绍过。

我们点击纹理贴图文件,在Inspector检视视图中查看其内容如下

第二十四章 Unity 纹理贴图

首先是Texture Type纹理类型,它是一个下拉选项,选项值如下:

1. Default 默认选项,此选项可用于访问大多数纹理导入属性。

2. Normal map法线贴图,可将颜色通道转换为适合实时法线贴图的格式。

3. Editor GUI and Legacy GUI 也就是UI纹理,用于任何HUD或GUI控件上使用。

4. Sprite (2D and UI) 在2D游戏中使用该纹理作为精灵,或者NGUI中的控件使用。

5. Cursor光标纹理,一般用于自定义光标的样式。

6. Cookie通过内置渲染管线中用于剪影的基本参数来设置纹理。

7. LightMap光照贴图,将纹理用作光照贴图。

8. Directional LightMap平行光光照贴图,将纹理用作平行光光照贴图。

9. Shadowmask阴影遮罩,将纹理用于阴影效果。

10. Single Channel在纹理中只需要一个通道。

接下来是Texture Shape纹理形状,它也是一个下拉选项,选项值如下:

第一,2D 是用于所有纹理的最常用设置;它将图像文件定义为 2D 纹理。这些设置用于将纹理映射到 3D 网格和 GUI 元素以及其他项目元素。该项是默认值。

第二,Cube 将纹理定义为立方体贴图。例如,可将其用于天空盒或反射探针。此类型仅可用于 Default、Normal Map 和 Single Channel 纹理类型。

第三,2D Array 将纹理定义为 2D 数组纹理。这通常用作某些渲染技术的优化,其中会使用许多具有相同大小和格式的纹理。

第四,3D 将纹理定义为 3D 纹理。某些渲染技术使用 3D 纹理表示体积数据。

纹理的透明处理。可以使用阿尔法纹理Alpha Texture用来包含游戏对象纹理的透明信息。其实阿尔法纹理就是一个图像纹理的灰度图。黑色区域表示透明,白色区域表示不透明,中间灰色代表不同程度的透明。也就是说,如果想让一个图像以透明方式显示,则需要根据这个图像制作一个灰度图,将透明部分做成黑色,不透明部分做成白色。两个图像叠加就会出现透明效果。

重采样决定如何将纹理图像上的像素映射到游戏对象上。选中纹理图像,在检视面板中的Filter Mode属性可以设置点Point,双线性Bilinear(默认),三线性Trilinear三种模式。这三种过滤模式对纹理图像处理的质量依次增加。

最后,我们顺便在说一下3D模型。模型文件可包含各种数据,包括网格、材质和纹理。对于动画角色,它们还会包含动画数据。通常在外部应用程序中创建模型,然后将它们导入到 Unity 中。Unity 内部使用 .fbx 文件格式作为其默认格式,因此建议大家尽可能使用 .fbx 文件格式。当然,Unity还支持obj, .dxf和.dae 标准格式。对于专有文件格式,Unity支持Maya,Blender,3ds Max等格式。Unity 不提供对 Cinema4D 文件的内置支持。要在 Unity 中使用 Cinema4D 文件,您应该将它们从专有软件导出为 .fbx 文件。

这里我们首先说明一下模型单位的问题。在Unity中1个单位是1米,但是在其他建模软件中就不一定是这样的设置了。例如,我们在3ds max中需要通过在菜单栏中选择“自定义”-“单位设置”-“系统单位设置”中设置1个单位是1米。

第二十四章 Unity 纹理贴图

然后我们创建一个立方体Cube,其尺寸为1米*1米*1米

第二十四章 Unity 纹理贴图

我们在3ds max中添加了一个紫色的材质球。

第二十四章 Unity 纹理贴图

然后我们将这个Cube导出FBX文件。

第二十四章 Unity 纹理贴图

我们可以在单位设置中查看,我们发现就是“Meters”米的单位设置。

这里需要额外说明的是,3ds max的坐标系是Z轴向上,在Unity中是Y轴向上,改一下。

第二十四章 Unity 纹理贴图

改完之后,就可以导出Cube.fbx文件了。然后我们导入到Unity中。

第二十四章 Unity 纹理贴图

我们还可以使用Unity创建一个立方体Cube与之进行对比。

第二十四章 Unity 纹理贴图

两者的尺寸是一样的。如果我们在3ds max中设置的单位是CM的话,在导出米单位的时候,会有一个比例因子变成0.01,导入Unity的时候对应的就是Scale Factor为0.01。

模型导入Unity后,我们可以点击模型文件,查看它的Inspector检视视图。

第二十四章 Unity 纹理贴图

首先是四个选项卡按钮,分别是“Model”,“Rig”,“Animation”和“Materials”。

“Model”网格信息,其下第一个就是“Scale Factor”缩放因子的设置。

“Rig”骨骼框架,这个内容我们会在骨骼动画章节中详细介绍。

“Animation”动画,主要是动画剪辑的设置。

“Materials”材质,显示该模式使用的材质信息。

关于模型的相关信息,我们会在骨骼动画章节中详细介绍。文章来源地址https://www.toymoban.com/news/detail-448156.html

到了这里,关于第二十四章 Unity 纹理贴图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第二十二章 光照贴图

    光照贴图过程将预先计算场景中静态物体表面的亮度,并将结果存储在称为“光照贴图”的纹理中供以后使用。光照贴图可以包含直接光照和间接光照,以及阴影效果。但是,烘焙到光照贴图中的数据无法在运行时更改,这就是为什么移动静态物体后,阴影不会跟随移动。接

    2024年02月02日
    浏览(46)
  • 第二十四节 异常

    10.3 异常 Python使用称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让Python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果未对异常进行处理,程序将停止并显示traceback,其 中包含有关异常的报告。 异常

    2024年02月13日
    浏览(57)
  • Vlan端口隔离(第二十四课)

    一、端口隔离 1、端口隔离技术概述 1)端口隔离技术出现背景:为了实现报文之间的二层隔离,可以将不同的端口加入不同的VLAN,但这样会浪费有限的VLAN ID资源。 2)端口隔离的作用:采用端口隔离功能,可以实现同一VLAN内端口之间的隔离。 3)如何实现端口隔离功能:只

    2024年02月15日
    浏览(38)
  • 第二十四节 连接到OneNET

    有了前面两个实验的经验,废话不多说,直接使用OneNET。 首先注册与登陆OneNET,然后进入开发者中心:https://open.iot.10086.cn/develop/global/product/#/public,选择公有协议产品,点击“添加产品”,填写产品相关的信息,联网方式选择wifi(其实我们是以太网,但是没有这个选项,那

    2024年02月05日
    浏览(59)
  • Java多线程&并发篇----第二十四篇

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 采用时间片轮转的方式。可以设置线程的优先级,会映射到下层的系统上

    2024年01月20日
    浏览(70)
  • C语言第二十四弹---指针(八)

    ✨ 个人主页:   熬夜学编程的小林 💗 系列专栏:   【C语言详解】   【数据结构详解】 指针 1、数组和指针笔试题解析  1.1、字符数组 1.1.1、代码1: 1.1.2、代码2: 1.1.3、代码3: 1.1.4、代码4: 1.1.5、代码5: 1.1.6、代码6: 总结    1.1.1、代码1: char arr[] = {\\\'a\\\',\\\'b\\\',\\\'c\\\',\\\'d\\\',\\\'e

    2024年02月20日
    浏览(75)
  • 研一第二十一周论文阅读情况

    一、《Benchmarking PathCLIP for Pathology Image Analysis》 1、Abstract:         准确的图像分类和检索对于临床诊断和治疗决策具有重要意义。最近的对比语言图像预训练(CLIP)模型在理解自然图像方面表现出了显着的能力。从CLIP中汲取灵感,PathCLIP专为病理学图像分析而设计,在

    2024年02月19日
    浏览(41)
  • 二十三种设计模式第二十四篇--访问者模式(完结撒花)

    在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。 通过这种方式,元素的执行算法可以随着访问者改变而改变。 这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的

    2024年02月14日
    浏览(44)
  • 【从零开始学JAVA | 第二十四篇】单列集合的遍历

    目录 前言: 单列集合的遍历方式: 迭代器遍历: 增强for遍历: lambda方法遍历:  总结: 本篇我们会讲解关于单列集合的几种遍历方式,遍历集合可以说是对于集合要求掌握的最低技能,因此我们要熟练的掌握遍历集合的方式。 在这里我们不讲for循环遍历,for循环无法对单

    2024年02月16日
    浏览(61)
  • 第三十四章 Unity人形动画(上)

    在我们DirectX课程中,我们讲过一个模型最少拥有网格和材质,可以没有动画。游戏场景中的静态物体就可以是这样的模型,例如花草树木,建筑物等等,他们通过MeshRenderer就可以渲染。对于一个带有动画的FBX文件,里面不仅仅包含了网格和材质,还包括了“骨架”和动画数据

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包