Unity用户手册-Texture

Power of 2 (贴图宽高要是2的幂的长度):

根据不同平台,选择合理的纹理压缩格式,iOS选择RGBA ASTC 4* 4 block(从iOS9开始支持,显示效果更好,不需要把图片设置成方形),Android选择RGBA ETC 2 8bits

Android平台:如果有一个贴图大小为200 * 512,会被变成256 * 512。

如果贴图大小为257 * 512,会被变成512 * 512。宽度只是比256多了1像素,也会变成512。

iOS平台:如果有一个贴图大小为200 * 512,会被变成512 * 512。

如果贴图大小为257 * 512,也会被变成512 * 512,iOS平台,要求贴图的宽高是一致的,也就是贴图需要是正方形,之前的PVRTC压缩纹理格式要求正方形,现在可以采用ASTC压缩格式,就不需要一定是正方形了。


anisoLevel

纹理的各向异性过滤等级

指相机视野与场景的角度很小时,是否增强模型的纹理精度,分为1-9级,1级没有过滤,9级过滤等级最大,等级越大,纹理精度越大,也就越清晰。

   

WrapMode

贴图间的拼接模式,也称为纹理寻址模式

Repeat 纹理本身重复平铺,创建重复图案。如果纹理坐标超过1或小于0,那么整数部分将会被舍弃,直接使用小数部分进行采样。这样的结果是纹理将会不断重复。

Unity用户手册-Texture_贴图

Clamp 纹理拉伸,也就是单个图片,不重复平铺。纹理坐标被限制在0-1之间,当UV大于1或小于0时,边界像素将被使用。

Unity用户手册-Texture_Texture_02

Mirror 纹理镜像,创建重复图案,对其应用的所有行和列都是前一行或前一列的镜像。

Unity用户手册-Texture_贴图_03

BorderColor 边框颜色,对纹理坐标超过1或小于0,用设定颜色填充。

Unity用户手册-Texture_纹理采样_04

   

FilterMode


纹理的采样方式

当一个比较小的贴图,贴到一个比较大的3D模型上,就会存在一个问题,3D模型上的点,不会正好对应贴图上的像素,3D模型上的点可能就会落在贴图上像素点与像素点之间。

纹理对应3D模型上的点,距离最近的一个纹理像素点,来插值采样,如果纹理大小与屏幕原始图像大小相似,这是一种快速有效的处理纹理的方法。如果不是,则必须放大或缩小纹理,导致看起来就会一块块的模糊的,形似马赛克的图像。

纹理对应3D模型上的点,周围的四个纹理像素点,来插值采样,看起来就会过渡的更加自然。

如果选择Trilinear模式,还会在Mip map(多级渐远纹理)之间进行混合,如果纹理没有采用Mip map技术,那么Trilinear得到结果跟Bilinear是一样的。

Point:点过滤 - 纹理像素变得块状紧密,

Bilinear:双线性插值

Trilinear:三线插值 - 用于Mip map,对不同的Mip层进行插值,使其过渡的更自然

UV map(UV贴图,纹理映射)

将2D图像上的每一点精确对应到3D模型物体表面,在点与点之间的间隙位置进行图像光滑插值处理,这就是UV mapping。UV坐标是以左下角为(0,0),右上角为(1,1)

Mip maps(多级渐远纹理)

Mip maps是将原纹理用滤波处理得到8张不断降采样的纹理,每一层都是对上一层纹理降采样的结果,用于优化实时3D引擎的性能。

最大分辨率的纹理放在第一位,mipmap中每一级比前一级别纹理的高度和宽度均减少2的幂。

远离相机的物体使用较小的纹理,靠近相机使用较大的纹理。

使用Mip maps需要使用33%以上的内存,但不使用它会导致巨大的性能损失。

缺点:运行时占用更多内存,且增加包的容量。因为Mip maps会根据摄像机远近不同而生成对应的八个贴图,运行会加载到内存中。

优点:优化显存带宽,用来减少渲染。因为可以根据距离摄像机远近,选择适合的贴图来渲染。

一般不需要距离摄像机靠近清晰,否则模糊的这种效果,取消勾选Generate Mip Maps选项。

勾选Mip maps,对处理锯齿和闪烁的很有用。

Normal map

为了计算光照,我们需要使用网格的法线,每一个法线都是垂直于切线平面指向外面的向量。法线贴图是一个RGB贴图,其中每个像素表示相对于未修改的法线向量,表面应该面向的方向的差异。 由于矢量存储在RGB值中,这些纹理往往具有蓝紫色调。

法线纹理存储的是表面的法线方向,用法线经过映射后得到的像素值表示。由于法线方向的分量范围在[-1, 1],而像素的分量范围为[0, 1],因此我们需要做一个映射,通常的映射就是:

pixel = (normal + 1)/ 2

这就要求我们在Shader中对法线纹理进行纹理采样后,还需要对结果进行一次反映射的过程,已得到原先的法线方向。反映射的过程就是使用上面函数的逆函数:

normal = pixel * 2 - 1

在实际开发中,我们往往采用的是切线空间的法线纹理。对于每一个顶点,都有一个属于自己的切线空间,这个切线空间的原点就是该顶点本身,而z轴是顶点的法线方向,x轴是顶点的切线方向,y轴可由法线和切线的叉积得到,也被称为副切线或副法线。

切线空间的法线纹理优点:

  • 可重用,模型空间下的法线纹理记录的是绝对法线信息,仅可以用于创建它的那个模型,应用到其他模型上的效果就完全错误了。切线空间下的法线纹理记录的是相对法线信息,即使应用到其他完全不同的网格上,也可以得到一个合理的结果。
  • 可进行UV动画,在切线空间下可以移动纹理的UV坐标来实现凹凸效果,但使用模型空间下的法线纹理会得到完全错误的结果。

法线纹理总是显示浅蓝色的原因:

法线纹理存储了每个点在各自的切线空间中的法线方向。如果一个点的法线方向不变,那么在它的切线空间中,z轴就是法线方向,即为(0,0,1),经过映射后存储在纹理中就对应了RGB(0.5, 0.5, 1)浅蓝色。

Normal mapping

是一个游戏编程技巧,在为低面数网格模型计算光照时,使用高面数网格模型的法线贴图,从而使低面数网格模型看起来包含更多细节。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空