Semplificazione del poligono che racchiude l'insieme originale di punti

2

Ho cercato di implementare un'ottimizzazione per il rendering di sprite 2D per combattere il problema del limite di fill limitato sui dispositivi mobili. L'idea è di rendere i poligoni testurizzati invece dei quad che verranno mappati alle porzioni visibili di un'immagine con trasparenza scartando le parti invisibili dall'elaborazione.

Finora ho implementato almeno due approcci che mi consentono di trovare l'insieme di punti (outline) di un'immagine con i dati di trasparenza usando Marching Squares (outline esatto) e uno più flessibile, che mi consente anche di introdurre il riempimento necessario (Trasformazione a distanza euclidea).

Ho anche preparato una triangolazione con Ear Clipping, quello che mi rimane è la semplificazione dell'insieme di punti generati dai primi due algoritmi citati.

A causa della natura del problema, ho bisogno di un algoritmo in grado di eliminare punti, eventualmente spostare o introdurre nuovi punti che si traducono in una versione ottimizzata per area della forma originale, ma garantisce anche che la nuova forma racchiuda la precedente (come non voglio tagliare parti visibili di un'immagine che sto per renderizzare)

Ho cercato su Google e controllato le mie opzioni ma finora non ho trovato nulla di utile. Stavo guardando l'algoritmo di semplificazione della linea Ramer-Douglas-Peucker ma non sembra fornire garanzie di cui ho bisogno.

Il problema che sto affrontando è qualcosa di comune, ha un qualche tipo di nome? Qualche suggerimento su come dovrei affrontare il problema dato?

Finora la semplificazione più ovvia è stata quella di rimuovere i punti che non aggiungono alla curvatura (i bordi adiacenti al vertice creano un angolo di 180 gradi) ma ciò non è sufficiente.

    
posta Adrian Lis 30.01.2016 - 19:35
fonte

0 risposte

Leggi altre domande sui tag