Ich verwende einen bikubischen Interpolationsalgorithmus, um eine Höhenkarte zu skalieren, und ich bemerke einige Artefakte um die Pixelgrenzen. Diese Artefakte scheinen jedoch nicht zu erscheinen, wenn ich eine einfache kubische Interpolation (Spline) verwende.
Könnte es sein, dass die bikubische Interpolation nicht garantiert, dass die zweite Ableitung im Gegensatz zum kubischen Spline stetig ist? Wenn ja, gibt es bekannte Algorithmen mit einer kontinuierlichen zweiten Ableitung? Gibt es sonst eine Möglichkeit, mit diesen Artefakten umzugehen?
Lineare Interpolation (zeigt die Pixelgrenzen):
Bikubische Interpolation (Artefakte an Pixelgrenzen sichtbar):
Kubische Interpolation (keine erkennbaren Artefakte):
Ich habe mehrere bikubische Formeln ausprobiert, die zu den gleichen Ergebnissen führten. Hier sind einige Beispiele:
Antworten:
In Ken Perlins Artikel über verbessertes Rauschen erwähnt er ein sehr ähnliches Problem. Die im ursprünglichen Rauschpapier verwendete Kubik erzeugt aufgrund der Eigenschaften ihrer Ableitungen Diskontinuitäten an den ganzzahligen Grenzen. In seinem überarbeiteten Papier schlägt er eine Interplantation vor
6t^5 - 15t^4 + 10t^3
, um diese Probleme anzugehen.quelle
Ich habe einige Suchen durchgeführt und festgestellt, dass B-Spline ein kontinuierliches C2 hat. Ich habe es implementiert und es sieht gut aus, auch wenn es eine Annäherung und keine Interpolation ist (es geht nicht durch die Samples).
B-Spline (Annäherung):
quelle