Terrain glätten?
-
Hallo,
ich verwende Bilddateien mit Heightmaps zur Terrainerstellung. Leider ist das Resultat an Stellen mit großen Höhenunterschieden mit sehr häßlichen Stufen durchsetzt. Kennt jemand einen guten Algorithmus um das Terrain zu glätten?
Ich verwende DirectX 9.Mfg Flori
(Edit: Mit Mittelwertbildung funktioniert es schon sehr gut, mich würde aber dennoch interessieren wie manch anderer das Problem angeht)
-
Versuchs doch mal mit nem einfachen Box- oder Gaussfilter, evtl. gewichtet mit dem Absolutbetrag des Höhenunterschiedes im entsprechenden Bereich oder sowas.
-
wenn es nur vereinzelte peaks sind, kannst du ein median-filter einbauen, der sollte das ausbuegeln ohne grossartig den rest zu veraendern.
ansonsten wie dot sagte, mal mit gauss versuchen.
-
Falls es um "Höhenlinien" geht, wäre vielleicht ein Deband-Filter angesagt, wie ihn z.B. ffdshow für Videos drinnen hat.
Wobei ich leider nicht weiss, wie der Algorithmus genau funktioniert. Bloss dass er bei Videos super funktioniert, um die öden "Farbränder" bei grossflächigen "langsamen" Farbübergängen wegzumachen.Es könnte einfach ein schlau maskierter Blur-Filter sein. Wobei die Implementierung in ffdshow dazu fast ein wenig zu schnell ist. Selbst bei extrem grossen Radii geht die CPU-Auslastung da kaum rauf.