vrijdag 5 december 2008

Kleine Update Uniform Grid

Hier een kleine update langs mijn kant:

De Uniform Grid implementatie op de GPU is nog niet volledig. Er zijn momenteel onstabiliteitsproblemen. De manier waarop ik momenteel mijn uniform grid opstel is door gebruik te maken van RGBA coordinaten van een texture. Elke pixel in die texture stelt een gridcel voor, en er kunnen bijgevolg maximaal 4 particles in een gridcel (cfr Smoothed Particle Hydrodynamics on gpus van Harada). De grootte van de gridcel is momenteel gelijk met de kernel radius, zodat er telkens 27 gridcellen per particle moeten worden overlopen.

Het eerste probleem is dat er van het begin al ongeveer 10% van de particles worden gedropt omdat ze gewoonweg niet in de grid passen. Bij volgende iteraties (na botsing met een wand) gaat het water zich nog harder samendrukken, waardoor er nog meer particles moeten worden gedropt. Sommige gridcellen hebben van het begin al 6 plaatsen nodig.

Bij de thesismeeting van vandaag hebben we een aantal oplossingen voorgesteld:
  1. Vergroten van gridresolutie. Dus een gridcel moet kleiner worden als de kernel radius. Dit zorgt er wel voor dat er meer gridcellen per particle moeten worden overlopen, maar het kan zorgen voor stabiliteit.
  2. Een tweede of derde textuur gebruiken om extra particles in op te slaan. Het aantal texturen zou experimenteel moeten worden bepaald.
  3. De textuur vergroten om zo meerdere pixels per gridcel te nemen. Men kan zelfs eventueel halve pixels nemen om zo 2 particles op te slaan.
  4. Tait equation gebruiken om zo te kunnen bepalen hoe hard de vloeistof samendrukbaar mag zijn.
  5. Particles die niet in de gridcel zitten, zijn onzichtbaar voor alle particles (inclusief hunzelf). Een kleine verbetering zou kunnen zijn dat bij de densiteitberekening elke particle zichzelf automatisch als apart geval beschouwt, waardoor dat de onzichtbare particles op zijn minst een densiteit van zichzelf krijgen als ze geen buren hebben.
Dus volgende week ga ik er voor proberen te zorgen om alles stabieler te krijgen. Ook ga ik Harada een mail sturen om te vragen hoe het precies zit met het droppen van particles die niet in gridcellen passen.

Meer info van zodra ik resultaten heb!

Geen opmerkingen: