每个三角网格可能被多个视角所看到,但每个三角网格只选择一个视角获取纹理
视角的选择应当考虑到以下因素:
- 三角网格在视角中的可视性
- 三角网格在视角图像的细节丰富程度
- 三角网格在视角图像中的尺度
- 相邻三角网格尽量具有相同视角
判断可视性
- 法向量与负视线方向的夹角要小于一定值
- 视线方向与相机朝向的夹角要小于一定值
- 碰撞检测(BVH)
数学模型
马尔科夫随机场
[E(l)=sum_{F_{i} in ext { Faces }} E_{ ext { data }}left(F_{i}, l_{i}
ight)+sum_{left(F_{i}, F_{j}
ight) in ext { Edges }} E_{ ext { smooth }}left(F_{i}, F_{j}, l_{i}, l_{j}
ight)
]
数据项
- 纹理细节--投影三角形的平均梯度(一般转化为灰度图)
- 尺度--投影三角形的面积
[E_{mathrm{data}}=-int_{phileft(F_{i}, l_{i}
ight)}left|
ablaleft(I_{l_{i}}(p)
ight)
ight|_{2} mathrm{d} p \
l_{i} quad 表示视角\
ablaleft(I_{l_{i}}(p)
ight)表示投影点处的梯度\
phileft(F_{i}, l_{i}
ight)表示三角形的投影区域
]
由于像素离散性,在投影三角形上均匀取点计算梯度平均值,再乘以三角形面积。
平滑项
[E_{mathrm{smooth}}=left[l_{i}
eq l_{j}
ight]
]
如果两个三角网格不相邻添加罚项