在我的项目中,我正在创建一个用于变形高度详细的网格(衣服)以使其“适合”凸形网格的系统。为此,我使用商品的深度图和“船体”来确定在世界空间的哪个点发生偏离和程度。
简单地将所有被遮挡的顶点转换为“船体”定义的深度是相当有效的,并且具有良好的性能,但是它存在无法保留网格特征的问题,并且需要进行大量剔除才能避免假阳性。
相反,我想从深度偏差图中生成一组简单的“变形器”,这些变形器将(向外)“变形”的网格的所有顶点向外(在世界空间中)推入。这样,可以保留网格的所有特征,并且不需要复杂的启发式方法即可剔除不适当的顶点。
我不确定如何生成此变形器集。我正在想像一种算法,尝试将球面与某个范围内的连续偏差的每个斑块进行匹配,但不知道从哪里开始。
谁能建议一个合适的滤波器或算法来生成变形器?还是换一种方式“压缩”深度图?
(*推动,因为它适合凸的“凸起”类人动物,所以变换很可能是从表面的POV“球形”开始的。)
编辑:这是正确建议的图像/图表,它说明了我正在尝试实现的目标。
另外,我应该说,自从发布此问题以来,我在这个问题上做了很多工作,尽管我从未解决过如何获得变形器的问题,但我最终还是决定将深度图不适用于:
- 如果变形网格是不完整的,有可能获得被映射纹素的意思是对的凸网的另一边(因为它们没有被掩盖那些靠近摄影机放在正确的一边)。
- 效率不如我希望的那样高,因为每个变形都需要6个贴图。
并不是说这些不是无法解决的,而是另一种解决方案,它涉及在GPU上运行的内核中进行碰撞测试,从而可以得到更高质量的结果,并且虽然可能没有那么快,但结果却简单得多。
我仍然认为这个问题很有趣,并且会对任何答案都感兴趣,因为我确信在某些情况下它会是更可取的。