Texture+PBR两种工作流程
一、导入Texture
1.Inpspector
TextureSize
2的n次幂,底层图形学需要,计算更快;不使用2的倍数,系统也会添加像素补全2n;
有最大尺寸限制8k,cubemap最高4k;
Mipmap
图像逐渐减小版本的列表;纹理远离摄像机时,Unity 会自动使用较小版本的纹理;LOD
内存增加33%;
WarpMode
循环模式:平铺,拉伸,镜像,一次镜像回退到拉伸,Per-Axis(uv轴不同循环模式);
FilterMode
滤波模式;采样方式:
Point:点插值,拉伸块状化(锯齿);
Bilinear:双线性插值,拉伸模糊;
Trilinear:三线性插值,除了Bilinear,在不同mipmap等级进行模糊;
AnisoLevel
各项异性过滤,掠射角观察提高纹理质量,非常消耗显卡资源,一般禁止;
2.导入器规范资源格式
Unity导入资源有默认格式,Texture导入默认type是Deafult;如果是2D游戏要求都是Sprite;每次导入都需要修改类型非常麻烦;
Unity提供了导入资源设置资源属性的接口;
这段代码可以实现导入图片资源默认格式为Sprite;
using UnityEditor;
public class PreTexture : AssetPostprocessor
{
void OnPreprocessTexture()
{
TextureImporter tImporter = (TextureImporter)assetImporter;
tImporter.textureType = TextureImporterType.Sprite;
}
}
包含UnityEditor继承AssetPostprocessor,实现以下方法:
-
OnPreprocessTexture
-
OnPreprocessModel
-
OnPreprocessAnimation
-
OnPreprocessAudio
导入资源可以修改格式,压缩大小,禁用mipmaps,wrapmode等;
具体看官方文档,自定义需求;
3.Format
带不带透明通道内存占用相差1/3左右;
PC
DirectX 11:
RGB 纹理 - DXT1 4 位/像素;
RGBA 纹理 - BC7(质量更高,压缩速度较慢)或 DXT5(压缩速度较快);
HDR 纹理 - BC6H;
DirectX 10: DXT5(GPU不支持BC7);
IOS
A8 芯片以上:RGB 和 RGBA 纹理 - ATSC (纹理质量粒度可选);
A7或更低:PVRTC;
Android
OpenGL ES 3.0/Vulkan - ETC2 / ATSC
OpenGL ES 2 - ETC
HDR 纹理 - ASTC HDR(需要Vulkan 或GL-hdr支持)
画质:RGB(A)32 > ASTC4X4 > ASTC6X6 > ETC2 ≈ PVRTC > ETC1
国内TOP600机型情况分布:OpenGL ES 3.1以下覆盖用户占0.2%,设备数量占比6.3%;
所以其实其实移动平台统一用ASTC完事;
二、两种PBR workflow
F0:入射角为0 ° 0\degree0°时的反射光线radiance占入射光线radiance的比例;
漫反射高光都收到F0影响;
1.金属粗糙度(M/R)
-
BaseColor:RGB贴图,表示金属的F0;
-
Metallic:灰度图,金属占比遮罩;100%金属为1白色;0%金属为0黑色;
-
Roughness:灰度图,数值越大越粗糙;
优缺点:非金属的F0固定为0.04,无法调整;主要workflow;
2.镜面反射光泽度(S/G)
- Diffuse/Albedo:RGB贴图,表示非金属颜色,金属0纯黑;
- Specular:RGB贴图,定义金属非金属的F0;
- Glossiness:灰度图,数值越大越光滑;
优缺点:F0自由调整(可能做出反能量守恒定律的材质);两张RGB图,性能要求高;
贴图分辨率和纹素密度太低会出现白边和黑边,由于贴图之间误差;
Life is too short for so much sorrow.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)