Unity Shader 学习 Texture Mapping
简介
Texture Mapping是一种在计算机生成的图形或3D 模型上定义高频细节、表面纹理或颜色信息的方法[1].
Unity中的关于纹理贴图的知识点
纹理声明
1
2
3sampler2D _MainTex;
float4 _MainTex_ST
// 纹理名_ST 声明的是纹理的缩放和平移,分别存储在 纹理名_ST.xy 和 纹理名_ST.zw纹理缩放和平移的应用
1
o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
纹理属性
Warp Mode
- Repeat 重复平铺
- Clamp 截取
Filter Mode
- Point
- Bilinear
- Trilinear
滤波效果依次提升,但消耗依次增大。
mipmapping(多级渐远纹理)
预先计算的的图像序列,目的时为了提高渲染速度,代价时需要额外的存储空间,每个纹理的内存增加33%[3]。
纹理长宽需要时二次幂
如果使用了非二次幂的纹理(NPOT Texture)[4],可能会占用更多的内存空间,GPU读取速度也会有所下降。
参考
[1] Texture mapping - wikipedia
关于本文
本文作者 Master Gong Sheng, 许可由 CC BY-NC 4.0.