图像 Mipmap

August 19

一、Mipmap 基础

项目说明
目的为纹理预先生成多级低分辨率版本, 减少远距离采样时的锯齿与摩尔纹, 并提升缓存命中与性能。
金字塔层级若原图尺寸为 (W×H)(W \times H), 第 (l)(l) 级通常为 (max(1,W/2l)×max(1,H/2l))(\max(1, \lfloor W/2^l \rfloor) \times \max(1, \lfloor H/2^l \rfloor)), 直到 1x1。
存储开销各级面积总和约为原图的 (13)(\frac{1}{3}) (更精确为 (k=14k=13)(\sum_{k=1}^{\infty} 4^{-k} = \frac{1}{3})) , 因此总纹理内存约为原图的 (43)(\frac{4}{3})

二、常见降采样算法 (Downsampling)

算法/类型做法优点缺点/备注
Box Filter (均值/箱式滤波)每2x2像素取平均生成下一层。公式:C=14i=01j=01C2x+i,2y+jC'=\frac{1}{4}\sum_{i=0}^{1}\sum_{j=0}^{1}C_{2x+i,2y+j}实现简单、速度快频率滚降不理想, 易产生走样; 对高频纹理不够平滑
Triangle/Bilinear Filter (线性核)用线性权重低通滤波后降采样, 或用三角核比box更柔和, 边缘保留略好成本略高于box
Gaussian Filter (高斯滤波)先做高斯模糊再降采样更接近理想低通, 抑制混叠更好计算较重, 可能模糊细节
Lanczos (窗化sinc)使用Lanczos核(常见a=2或3)重采样锐利且抑制混叠优秀成本最高, 可能出现轻微振铃(ringing)
Mitchell-Netravali / Catmull-Rom (三次插值家族)三次卷积核重采样清晰度与平滑度平衡良好, 成本中等常用于离线内容管线、纹理烘焙阶段
Gamma/色彩空间处理线性空间平均, 避免在sRGB空间直接平均导致偏暗。流程:sRGB→线性; 滤波/降采样; 线性→sRGB。Alpha处理:建议用预乘alpha, 再滤波降采样。保证色彩物理一致-
法线贴图专用反变换到切线空间单位向量、累加后归一化、必要时重映射偏移。可加权(如Z分量或曲率权重)减少偏差。保证法线物理一致不能直接对RGB法线做线性平均

三、常见采样算法

算法/类型做法优点缺点/备注
Nearest Mipmap Nearest (MMN)选择最近的mip级, 使用最近点采样最快块状感明显
Nearest Mipmap Linear (NML)选择最近mip级, 使用双线性采样比MMN平滑跨级切换仍可能跳变
Linear Mipmap Nearest (LMN)在两个相邻mip级间做最近点采样, 再线性插值-很少单独使用
Trilinear Filtering (三线性过滤)对两级各做双线性采样, 在级间按LOD分数线性插值性价比高, 常用默认-
Anisotropic Filtering (各向异性)倾斜视角下沿主轴拉伸方向多点采样, 抑制斜视模糊与闪烁。与mipmap结合: 每个候选mip层沿各向扩展取样。参数: 各向异性等级(如4x,8x,16x)影响质量与性能。斜视下质量高成本随等级提升
LOD控制与偏移硬件根据屏幕空间导数估计LOD: λ=log2(max((u/x)2+(v/x)2, (u/y)2+(v/y)2))\lambda = \log_2 \left(\max \left(\sqrt{(\partial u/\partial x)^2 + (\partial v/\partial x)^2},\ \sqrt{(\partial u/\partial y)^2 + (\partial v/\partial y)^2}\right) \right)。应用可加偏移(LOD bias)控制锐度与噪点权衡。可调节锐度-

四、特殊 mipmap 变体

类型说明
Ripmaps分别对u、v独立降采样得到矩形金字塔, 适合强各向缩放。
Summed-Area Tables (SAT)用于快速盒式滤波和可变尺寸区域平均, 存储开销大。
Sparse/Virtual Textures分块存储与按需加载mip tiles。MegaTexture、Tiled Resources。
Specular/Gloss mip chain对粗糙度相关贴图按物理模型进行预过滤(如环境反射的prefiltered mipmap, BRDF-Convolved Env Map)。
Alpha Coverage Preserving Mipmaps透明纹理降采样时调整alpha维持覆盖率, 减少远景稀疏闪烁。

常见问题

  • sRGB空间做平均: 导致偏色、偏暗。
  • 直接平均法线或高光粗糙度贴图: 产生物理不一致。
  • 透明贴图不做coverage preserving: 远景闪烁。
  • mip级边界无缝处理: 生成时考虑wrap/clamp与边界像素复制, 避免接缝。

© 2020 - 2025 Ruiyao Luo

25/12/10 11:30

PROD

#68e6fa8