Metaball - Metaballs

Image
1: L'influenza di 2 metaball positive l'una sull'altra.
2: L'influenza di un metaball negativo su un metaball positivo creando una rientranza nella superficie del metaball positivo.

Nella computer grafica , le metaball sono isosuperfici n - dimensionali dall'aspetto organico , caratterizzate dalla loro capacità di fondersi insieme quando sono vicine per creare oggetti singoli e contigui. Questo aspetto "blobby" li rende strumenti versatili, spesso utilizzati per modellare oggetti organici e anche per creare mesh di base per scolpire . La tecnica per il rendering delle metaball è stata inventata da Jim Blinn nei primi anni '80 per modellare le interazioni atomiche per la serie televisiva Cosmos di Carl Sagan del 1980 . Viene anche chiamato colloquialmente "effetto gelatina" nella comunità di motion e UX design , che appare comunemente negli elementi dell'interfaccia utente come le navigazioni e i pulsanti. Il comportamento del metaball corrisponde alla mitosi nella biologia cellulare, dove i cromosomi generano copie identiche di se stessi attraverso la divisione cellulare.

Definizione

Ogni metaball è definita come una funzione in n dimensioni (ad esempio, per tre dimensioni, ; le metaball tridimensionali tendono ad essere le più comuni, con anche le implementazioni bidimensionali). Viene scelto anche un valore di soglia, per definire un volume solido. Quindi,

rappresenta se il volume racchiuso dalla superficie definita dalle metaball è riempito o meno.

Implementazione

Image
L'interazione tra due metaball 3D positive di colore diverso, creata in Bryce .
Nota che le due metaball più piccole si combinano per creare un oggetto più grande.

Una tipica funzione scelta per le metaball è la legge dell'inverso del quadrato , ovvero il contributo alla funzione di soglia diminuisce in una campana all'aumentare della distanza dal centro della metaball.

Per il caso tridimensionale , dove è il centro della metaball. Tuttavia, a causa della divisione, è computazionalmente costoso . Per questo motivo, vengono generalmente utilizzate funzioni polinomiali approssimate .

Quando si cerca una funzione di decadimento più efficiente, si desiderano diverse qualità:

  • Supporto finito . Una funzione con supporto finito va a zero in corrispondenza di un raggio massimo. Quando si valuta il campo metaball, è possibile ignorare qualsiasi punto oltre il raggio massimo dal punto campione. La ricerca del vicino più vicino può garantire che solo le metaball adiacenti debbano essere valutate indipendentemente dal numero totale nel campo.
  • Morbidezza . Poiché l' isosuperficie è il risultato della somma dei campi, la sua levigatezza dipende dalla levigatezza delle curve di decadimento.

La curva di decadimento più semplice che soddisfa questi criteri è , dove r è la distanza dal punto. Questa formulazione evita costose chiamate radice quadrata .

I modelli più complicati utilizzano un potenziale gaussiano vincolato a un raggio finito o una miscela di polinomi per ottenere l'uniformità. Il modello Soft Object dei fratelli Wyvill offre un maggiore grado di levigatezza ed evita comunque le radici quadrate.

Una semplice generalizzazione delle metaball consiste nell'applicare la curva di decadimento alla distanza dalle linee o dalla distanza dalle superfici.

Esistono diversi modi per eseguire il rendering delle metaball sullo schermo. Nel caso di metaball tridimensionali, i due più comuni sono il raycasting a forza bruta e l' algoritmo dei cubi di marcia .

Le metaball 2D erano un effetto demo molto comune negli anni '90. L'effetto è disponibile anche come modulo XScreensaver .

Riferimenti

Ulteriori letture

link esterno