nity基础(十六)图片贴图

Unity 支持的图片格式有很多

BMP:是 Windows 操作系统的标准图像文件格式,特点是几乎不进行压缩,占磁盘空间大

TIF:基本不损失图片信息的图片格式,缺点是体积大

JPG:一般指 JPEG 格式,属于有损压缩格式,能够让图像压缩在很小的存储空间,一定程度上会损失图片数据,无透明通道

PNG:无损压缩算法的位图格式,压缩比高,生成文件小,有透明通道

TGA:支持压缩,使用不失真的压缩算法,还支持编码压缩。体积小,效果清晰,兼备 BMP 的图像质量和 JPG 的体积优势,有透明通道

PSD:是PhotoShop(PS)图形处理软件专用的格式,通过一些第三方工具或自制工具可以直接将 PSD 界面转为 UI 界面

其它还支持 EXR、GIF、HDR、IFF、PICT 等等

其中 Unity 最常用的图片格式是 JPG、PNG、TGA 三种格式

二、纹理类型设置 Texture Type设置纹理类型主要是为了让纹理图片有不同的主要用途,指明其是用于哪项工作的纹理

(一)Default默认纹理,大部分导入的模型贴图都是该类型

sRGB(Color Texture):启用可以将纹理存储在伽马空间中(对每一个像素做一次幂函数运算)人眼对光强的反应不呈线性。我们在观察光时会发现一些亮度比另一些亮度更容易看到,即从黑到白的线性渐变在我们人眼中不是线性渐变的

由于历史原因,监视器和显示器具有相同的特性。向监视器发送线性信号会导致看起来像上图右侧的渐变,人眼观察感觉是错误的。为了弥补这一点,需要发送经校正的信号来确保监视器能够呈现出看起来自然的图像。这种校正称为伽马校正。

伽马和线性颜色空间同时存在的原因是,光照计算应该在线性空间中进行,以便确保数学上的正确性,但结果应该在伽马空间中呈现以便让人眼看起来正确。在帧缓冲格式限制为每通道 8 位的旧硬件上,计算光照时使用伽马曲线可在人类可感知的范围内提供更高的精度。在人眼最敏感的范围内,使用的位数最多。

伽马空间的公认标准称为 sRGB 。该标准定义了它与线性空间之间的一个映射,使得人眼能充分利用 8 位 / 通道的精度

线性渲染指的是渲染场景的过程,此情况下的所有输入都是线性的,也就是说,没有经过伽马校正以适合人眼观察或输出到显示器。

Alpha Source:指定如何生成纹理的 Alpha 通道

None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道Input Texture Alpha:输入纹理中的 Alpha 通道From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha,一般不使用Alpha Is Transparency:启用可以过滤边缘上的瑕疵,建议启用

(二)Normal Map

法线贴图就是在原物体的凹凸表面的每个点上均作法线

法线:垂直于某个点的切线方向的方向向量

Create From Grayscale:启用此属性可以从灰度高度贴图创建法线贴图Bumpiness:控制凹凸程度,值越大,凹凸感越强Filtering:如何计算凹凸值Smooth:使用标准算法生成法线贴图Sharp:生成比标准模式更锐利的法线贴图(三)Editor GUI and Legacy GUI

一般在编辑器中或者 GUI 上使用的纹理

(四)Sprite(2D and UI)

2D 游戏或者 UGUI 中使用的格式

Sprite Mode:图像中提取精灵图形的方式

Single:按原样使用精灵图像Multiple:瓦片模式。如果是图集,使用该选项则可在 Sprite Editor 窗口中自定义图片Polygon:网格精灵模式Pixels Per Unit:世界空间中的一个距离单位对应多少像素

MeshType:网格类型

只有 Single 和 Multiple 模式才支持

Full Rect:创建四边形,将精灵显示在四边形上

Tight:基于像素 Alpha 值来生成网格,更加贴合精灵图片的形状

任何小于 32 * 32 的精灵都会使用 Full Rect 模式,即使是设置成 Tight 也是

Extrude Edges:使用滑动条确定生成的网格中精灵周围流出的区域大小

Pivot:精灵图片的轴心点

Single 模式才有此选项,对应九宫格布局中的 9 个点

Generate Physics Shape:启用此选项,Unity 会自动根据精灵轮廓生成默认物理形状

只有 Single 和 Multiple 模式才可使用

Sprite Editor:编辑 Sprite,需要安装 2D Sprite 包,后续讲解

(五)Cursor

自定义光标

(六)Cookie

光源剪影格式

Light Type:应用的光源类型

一般点光源的剪影需要设置为立方体纹理,方向光和聚光灯的剪影设置为 2D 纹理

Spotlight:聚光灯类型,需要边缘纯黑色纹理,Texture Shape 会自动变为 2DDirectional:方向光,平铺纹理,Texture Shape 会自动变为 2DPoint:点光源,需要设置为立方体形状,Texture Shape 会自动变为 CubeAlpha Source:指定如何生成纹理的 Alpha 通道

None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道Input Texture Alpha:输入纹理中的 Alpha 通道From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha,一般不使用Alpha Is Transparency:启用可以过滤边缘上的瑕疵,建议启用

(七)Lightmap

光照贴图格式

(八)Single Channel

纹理只需要单通道的格式

Channel:希望将纹理处理为 Alpha 还是 Red 通道

Alpha:使用 Alpha 通道,不允许压缩Red:使用 Red 通道Alpha Source:指定如何生成纹理的 Alpha 通道

None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道Input Texture Alpha:输入纹理中的 Alpha 通道From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha,一般不使用Alpha Is Transparency:启用可以过滤边缘上的瑕疵

三、纹理形状设置 Texture Shape纹理不仅可以用于模型贴图,还可以用于制作天空盒和反射探针

纹理形状设置主要就是用于在两种模式之间进行切换

(一)2D

2D 纹理,最常用的设置,这些纹理将使用到模型和 GUI 元素上

(二)Cube

立方体贴图,主要用于天空盒和反射探针

Mapping:如何将纹理投影到游戏对象上

Auto:根据纹理信息创建布局6 Frames Layout:纹理包含标准立方体贴图布局之一排列的六个图像Latitude-Longitude Layout:将纹理映射到 2D 维度 / 经度Mirrored Ball:将纹理映射到类似球体的立方体贴图上Convolution Type:纹理的过滤类型

None:无过滤Specular:将立方体作为反射探针Diffuse:将纹理进行过滤表示辐照度,可作为光照探针Fixup Edge Seams:解决低端设备上面之间立方体贴图过滤错误

Convolution Type 为 None 或 Diffuse 才有用

(一)MipMap

在三维计算机图形的贴图渲染中有一个常用的技术被称为 Mipmapping。

为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 Mipmap,Mipmap 需要占用一定的内存空间

Mipmap 中每一个层级的小图都是主图的一个特定比例的缩小细节的复制品,虽然在某些必要的视角,主图仍然会被使用,来渲染完整的细节。但是当贴图被缩小或者只需要从远距离观看时,Mipmap 就会转换到适当的层级

因为 Mipmap 贴图需要被读取的像素远少于普通贴图,所以渲染的速度得到了提升。而且操作的时间减少了,因为 Mipmap 的图片已经是做过抗锯齿处理的,从而减少了实时渲染的负担。放大和缩小也因为 Mipmap 而变得更有效率。

如果贴图的基本尺寸是 256 * 256 像素的话,它的 Mipmap 就会有 8 个层级,每个层级是上一层级的四分之一的大小

依次层级大小就是:128 * 128、64 * 64、32 * 32、16 * 16、8 * 8、4 * 4、2 * 2、1 * 1(一个像素)

开启 MipMap 功能后,Unity 会帮助我们根据图片信息生成 n 张不同分辨率的图片,在场景中会根据我们离该模型的距离选择合适尺寸的图片用于渲染,提升渲染效率

在 Unity 中,启用选项 Generate Mip Maps 后,可以看见图片的 Mipmap:

(二)参数介绍

Non-Power of 2:如果纹理尺寸非 2 的幂该如何处理

None:纹理尺寸大小保持不变

To nearest:将纹理缩放到最接近 2 的幂的大小

(PVRTC 格式要求纹理必须为正方形)

To larger:将纹理缩放到最大尺寸大小值的 2 的幂的大小

To smaller:将纹理缩放到最小尺寸大小值的 2 的幂的大小

Read / Write Enabled:启用可以使用 Unity 中提供的一些方法从纹理中获取到数据,会占用额外内存

Streaming Mipmaps:启用则可以使用纹理串流

主要用于在控制加载在内存中的 Mipmap 级别,用于减少 Unity 对于纹理所需的内存总量,用性能换内存

Mip Map Priority:Mipmap 优先级

Unity 根据优先级来确定分配资源时优先考虑哪些 Mipmap

Generate Mip Maps:允许生成 MipMap

2D 游戏不需要启用

Border Mip Map:启用可避免颜色向外渗透到较低 MIP 级别的边缘,默认启用即可

Mip Map Filtering:优化图像质量的过滤方法

Box:随着尺寸减小,级别更加平滑

Kaiser:随着 Mipmap 尺寸大小下降而使用的锐化算法,效果较好

如果远处纹理太模糊,可以使用该算法

Mip Maps Preserve Coverage:Mipmap 的 Alpha 通道在 Alpha 测试期间保留覆盖率

Alpha Cutoff Value:覆盖率参考值Fadeout Mip Maps:级别递减时使 Mipmap 淡化为灰色,需要保留颜色时则不勾选

五、纹理平铺拉伸设置平铺拉伸主要设置纹理的平铺规则以及拉伸规则

(一)准备工作

在 Unity 2D 中创建 Quad 与 Material,Material 选择 Unlit / Texture 材质,并关联一张图片,将 Material 拖到 Quad 上

Tiling:平铺数量,表示在 X 轴和 Y 轴上平铺多少张图片Offset:偏移位置我们将 Tiling 的 X 和 Y 都设置为 2

(二)参数介绍

Wrap Mode:平铺纹理时的方式

Repeat:在区块中重复纹理

Clamp:拉伸纹理的边缘

Mirror:在每个整数边界上镜像纹理以创建重复图案

Mirror Once:镜像纹理一次,然后将拉伸边缘纹理

看上去像是直接 Clamp,但我们设置偏移位置 Offset 中 X 为 -1 后,可以看见是镜像了的

Per-axis:单独控制如何在 U 轴和 V 轴上包裹纹理

这里 U 和 V 轴相当于 X 和 Y 轴

Filter Mode:纹理在通过 3D 变化拉伸时如何过渡

Point:纹理在靠近观察时变为块状Bilinear:纹理在靠近观察时变得模糊,推荐使用Trilinear:与 Bilinear 类似,但纹理也在不同的 Mip 级别之间模糊Aniso Level:以大角度斜视查看纹理时提高纹理质量,性能消耗高

六、纹理平台打包设置平台设置主要设置纹理最终打包时在不同平台的尺寸、格式、压缩方式

它非常的重要,因为它影响了你的包大小和读取性能方面的问题

Max Size:导入纹理的最大尺寸,一般设置为 2048 即可

Resize Algorithm:当纹理尺寸大于 Max Size 时,使用的缩小算法

Mitchell:米切尔算法,常用Bilinear:双线性插值调整大小,相比 Mitchell 保留的细节会更多一些Format:纹理格式

各个平台支持的格式不同,如果选择 Automatic,会根据平台使用默认设置

IOS —— 选择默认的纹理压缩设置(PVRTC)可以获得更大的兼容性

Andorid —— ASTC、ETC2 / EAC、ETC、RGBA 16 位、RGBA 32 位

Compression:纹理的压缩类型

None:不压缩纹理Low Quality:低质量格式压缩Normal Quality:标准格式压缩High Quality:高质量格式压缩Use Crunch Compression:启用后,使用 Crunch 压缩

仅当压缩格式为 ETC 时才会出现会把一张图分成两张纹理,一张包含 RGB 数据,一张包含 Alpha 数据,会节约内存

THE END
0.Image及其属性image支持哪些类型的图片格式在这个示例中,我们创建了一个Image组件,并设置了其宽度、高度和填充方式。objectFit属性用于设置图片的填充效果,常见的值有cover、contain、fill等。 支持的图片格式 ArkUI的Image组件支持多种图片格式,包括PNG、JPG、BMP、SVG、GIF和HEIF。开发者可以根据实际需求选择合适的图片格式。需要注意的是,不同格式的图片在加jvzquC41dnuh0lxfp0tfv8mwcpmzwjsazwgo1jwvkerf1mjvckrt1:9:27796<
1.组件的使用鸿蒙image支持哪些类型的图片格式设置图片缩放类型 图片插值 设置图片重复样式 设置图片渲染模式 设置图片解码尺寸 为图片添加滤镜效果 同步加载图片 事件调用 开发者经常需要在应用中显示一些图片,例如:按钮中的icon、网络图片、本地图片等。在应用中显示图片需要使用Image组件实现,Image支持多种图片格式,包括png、jpg、bmp、svg、gif和heif,不支持apngjvzquC41dnuh0lxfp0tfv8~g|workwlzkp5bt}neng5eg}fknu526B<8;:;1
2.图片编解码支持的格式有哪些图片处理(Image)拍照和图片Image或者ImageSpan传入一个string类型的路径时无法加载图片 Image组件如何读入沙箱内的图片 如何实现事件透传 Text组件设置maxLines后如何确定文本是否被隐藏 如何实现类似keyframes的效果 外部容器Stack能否满足适应内部容器组件的圆角等样式 Stack布局设置Alignment.Bottom没有生效 布局是否支持css里的calc(100vh -jvzquC41fg|fnxugt0nvc€jk0eun1ltpuwsft8hp1fud1qftoqtzq|2hcsy0hjvu/ksbin27
3.ps支持哪些格式?ps中jpg/jpeg/jpeg2000的区别介绍photoshop教程大型文档格式(PSB) PSD的进阶版本,PSD虽然厉害,但不能存储2GB以上的图片,而且它的色深也被局限在了8位/通道,如果你的图片超过上述限制,可以选择PSB格式文件,它支持4GB以上图片和8位以上色深,其他功能与PSD一致。 PSB格式是Photoshop的大型文档格式,可支持最高达到300000像素的超大图像文件。他支持photoshop所有功能,可jvzquC41yy}/lk:30pku1ymqvqyiqy49:9=447mvon
4.Image组件使用详解Image 组件用于添加图片; 支持的图片格式:png、jpg,别的不太了解,没做做过多测试; 不支持图片格式:android 环境下不支持gif格式图片,显示一个空白,这点值得注意,所以在模拟数据加载动画的时候,android 环境下是不能实现的,目前解决办法是把一个gif格式的图片切割成很多分,间隔时间替换图片路径实现这么一个动态的效jvzquC41dnuh0lxfp0tfv8qqxgekunw1ctzjeuj1fgzbkux17493997;
5.Image(基础组件)image支持哪些类型的图片格式Image为图片组件,常用于在应用中显示图片。Image支持加载PixelMap、ResourceStr和DrawableDescriptor类型的数据源,支持png、jpg、jpeg、bmp、svg、webp、gif和heif类型的图片格式。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 jvzquC41dnuh0lxfp0tfv8xjwfgpuqfpDDW0c{ykenk0fnyckny03=644:943
6.又拍云文档中心如上列表可以看出,当 Accept 请求头里面如果有image/webp字段,则说明客户端支持 WebP 解码。 2.CDN 如何实现实时图片格式转换? 针对用户源站并非 WebP 格式图片的时,CDN 层需要支持将原图图片的实时转换为 WebP 格式副本,这个在 CDN 层面是无缝支持的。流程是这样的: jvzq<84fqey/wy~wp0ipo8hfp1ipponi1
7.IMAGE函数=IMAGE(source, [alt_text], [sizing], [height], [width]) IMAGE 函数采用以下参数: source图像文件的 URL 路径(使用“https”协议)。 必需。 支持的文件格式包括 BMP、JPG/JPEG、GIF、TIFF、PNG、ICO 和 WEBP(Web 和 Android 上不支持 WEBP)。 jvzquC41uwvqq{y0okisq|thv0ipo8j/et0qokkeg5jojlg/'K6'A<'DF+F8.>7'D6.9n634;=6/>j74/:g4j2d;fg.3m>35f;2h>i7
8.百度人脸识别使用指南私有化部署接口文档image是string图片信息(总数据大小应小于10M),图片上传方式根据image_type来判断。两张图片通过json格式上传,格式参考表格下方示例 image_type是string图片类型 BASE64:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M; FACE_TOKEN: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯jvzquC41vqvzww3xkr5jpmjz0rnq1qjnr1gsvrhng1823@3jvor
9.关于cv::imread读取图片类型的初探[通俗易懂]cv::imread支持哪些常见的图片格式? 如何判断cv::imread是否成功读取了图片? cv::imread读取图片时如何指定读取模式? 大家好,又见面了,我是你们的朋友全栈君。 关于cv::imread读取图片类型的初探 问题来源 环境 首先生成单通道和三通道的png图片 cv::imread函数及其参数 不同参数读取rgb图像 不同参数读取单通道图jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk04:;;27:
10.Python技巧之实现批量统一图片格式和尺寸python编辑能力:不同的图片格式支持不同的编辑功能。通过将图片转换为支持所需编辑功能的格式,可以更轻松地进行编辑工作。 如果我们需要把图片转换成文件,用Python学习的知识是不是能实现呢? Python模块之Image的应用示例 1.首先需要导入需要的图像库: 1 importImage jvzquC41yy}/lk:30pku1jwvkerf1;=565=/j}r