The Material Point Method (MPM) has proven to be a very capable simulation method in computer graphics that is able to model materials that were previously very challenging to animate [1, 2]. Apart from simulating singular materials, the simulation of multiple materials that interact with each other introduces new challenges. This is the focus of this thesis. It will be shown that the self-collision capabilities of the MPM can naturally handle multiple materials interacting in the same scene on a collision basis, even if the materials use distinct constitutive models. This is then extended by porous interaction of materials as in[3], which also integrates easily with MPM.It will furthermore be shown that regular single-grid MPM can be viewed as a subset of this multi-grid approach, meaning that its behavior can also be achieved if multiple grids are used. The porous interaction is generalized to arbitrary materials and freely changeable material interaction terms, yielding a flexible, user-controllable framework that is independent of specific constitutive models. The framework is implemented on the GPU in a straightforward and simple way and takes advantage of the rasterization pipeline to resolve write-conflicts, resulting in a portable implementation with wide hardware support, unlike other approaches such as [4].
Ziel der vorliegenden Studienarbeit war die Darstellung von Sand. Dabei wurde der Schwerpunkt weniger auf realitätsgetreue Visualisierung gelegt, sondern es wurde primär versucht, den Eindruck von fließendem Sand zu vermitteln. Dieser sollte durch die Simulation von Fließverhalten und Aufschüttung des Sandes erreicht werden. Modelliert werden die einzelnen Körner mithilfe eines Partikelsystems. Da die Simulation von Sand sehr aufwändig ist, sollten für diese Studienarbeit effiziente Datenstrukturen und Algorithmen für die Verwaltung der Sandkörner entwickelt werden. Die Kollisionserkennung ist bei derartigen Datenmengen ebenfalls sehr zeitraubend. Deshalb sollten auch hierfür geeignete Algorithmen erstellt werden. Um die Ergebnisse der Arbeit zu demonstrieren, sollte eine entsprechende, graphisch ansprechende Beispielanwendung implementiert werden.