
generate mip maps 是纹理的一个属性,用于控制纹理是否生成多级渐进纹理(Mip Maps)。Mip Maps 是一种纹理优化技术,可以提高游戏性能和渲染质量
Mip Maps 是指一系列的纹理图像,这些图像的分辨率逐级降低,直到达到一个预定的最小分辨率为止。Mip Maps 的作用是在远距离观察时,使用较低分辨率的图像进行渲染,从而提高渲染性能,同时又不会影响画面质量
在 Unity 中,generate mip maps 属性可以控制纹理是否生成多级渐进纹理。如果勾选了该属性,Unity 就会在导入纹理时自动为其生成多级渐进纹理。如果取消勾选该属性,Unity 就不会为纹理生成多级渐进纹理。
需要注意的是,生成多级渐进纹理会增加纹理所占用的显存大小。如果纹理较大,生成多级渐进纹理可能会导致游戏性能下降或显存不足的问题。因此,在实际开发中,需要根据游戏的性能需求来决定是否生成多级渐进纹理。
错误其实很简单:“纹理的长宽都是 4 的倍数,才能被压缩成 DXT5 格式”。看着这个提示,想到了 unity 的一次大会上,说纹理贴图推荐大小是 256、512、1024 等。当然,只要是 4 的倍数就行
核心关键词:压缩的 DXT5 格式,使用较少的内存。
在 DirectX 中,使用一种叫做 DXT 的纹理压缩技术,目前这种技术被大部分显卡所支持。 DXT 是一种 DirectDraw 表面,它以压缩形式存储图形数据,该表面可以节省大量的系统带宽和内存。即使不直接使用 DXT 表面渲染,也可以通过 DXT 格式创建纹理的方法节省磁盘空间
DXT4、DXT5 也是用于表示具有复杂的透明信息的贴图,与 2 和 3 不同的是 4 和 5 的 Alpha 信息是通过线性插值计算所得,类似于 DXT1 的颜色信息。同样的,每 4×4 的像素块的透明信息占用 64 位,所不同的是,64 位中采用了 2 个 8 位的 alpha 值和 16 个 3 位的索引值,既然每个像素的索引占 3 位,那么可以表示 8 种不同的透明状态。 在这里插值的方法有两种,一种用于表示具有完全透明和完全不透明的状态,另一种则是仅在给出的极端值 alpha_0 和 alpha_1 中进行插值。区分的方法也是通过比较 alpha_0 和 alpha_1 的大小来实现的,如果 alpha_0 大于 alpha_1,则通过插值计算剩下的 6 个中间 alpha 值;否则,只通过插值计算 4 个中间 alpha 值,alpha_6 直接赋值 0,alpha_7 直接赋值 255。 DXT4 和 DXT5 的区别同 DXT2 和 DXT3 的区别相同,DXT4 的颜色值是理解为已经完成 Premultiplied by alpha 操作的。 另外需要注意的是,所有的压缩纹理格式都是 2 的幂,因为纹理压缩的单位是 4×4 像素,所以如果贴图的大小位 16×2 或者 8×1 这样的比例,系统会同样采用 4×4 的单位进行压缩,会造成一定的空间浪费,同样的大小会被占用,只是不会参与使用而已。