Question

Il existe de nombreux ouvrages sur la détection des collisions, et j’en ai lu au moins une assez grande partie pour me familiariser avec la plupart des techniques. Cependant, il y a quelque chose qui m'a échappé pendant un moment, et je me suis dit, puisque StackOverflow fournit l'accès à un grand groupe d'esprits brillants à la fois, je demanderais d'abord ici avant de fouiller dans l'étagère.

De nos jours, de plus en plus de tâches sont déléguées aux GPU plutôt qu’au processeur, et dans de nombreux cas, c’est une bonne chose. Par exemple, il existe des shaders de géométrie pour créer une nouvelle géométrie, ou (légèrement moins nouveaux, mais toujours assez fascinants) des vertex shaders auxquels vous pouvez accéder à travers un tas de sommets, et il en sortira quelque chose d'élégant. Ce que j’envisageais cependant, étant donné que ces primitives n’existent que sur le matériel graphique, comment effectueriez-vous une détection de collision fiable avec ces primitives? Supposons que j'ai un type de maillage extrêmement simplifié qui est déplacé dans un vertex shader (je n'ai pas de problème concret, je joue plus avec l'idée, et je n'ai pas encore beaucoup pénétré dans les shaders de géométrie).

Ce que j’ai envisagé jusqu’à présent, c’est un «rendu» séparé des angles appropriés avec un ombrage plus ou moins désactivé, et peut-être un maillage de résolution inférieure, rendant l’intérieur (avec les faces retournées vers l’intérieur) de ma deuxième primitive avec le maillage. Je veux tester et exécuter une requête d'occlusion pour le maillage. Si le maillage est complètement obstrué, il n'y aurait pas d'intersection. Cela nécessiterait bien sûr que ma deuxième primitive soit convexe.

En quelque sorte, j’ai le sentiment que ce type de test sera extrêmement coûteux à mesure que le nombre de primitives augmentera (même si une grande partie peut être éliminée directement). Est-ce que quelqu'un d'autre a une autre idée ou technique? Je connais plus bien opengl et cg que directx, mais si vous en avez quelques exemples, je suppose que je serai capable de comprendre les homologues de opengl.

Toutes les idées sont appréciées, alors faites un brainstorming. :)

Était-ce utile?

La solution

Cela ressemble à l'article de Dan Horn & # 8220; Opérations de réduction de flux pour les applications GPGPU & # 8221; dans GPU Gems 2 est exactement ce que vous voulez. Comme tous les chapitres, il est librement disponible en ligne .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top