Salut !
Data fiind lipsa de activitate constructiva pe forum (mai ales de cand nu mai posteaza Dark...) am zis sa pun eu ceva ce am facut recent.
Numele spune tot.
Am modificat aplicatia prezentata la GDROCon (unde facusem rigid body sim) si am modificat collision detection sa mearga pe GPU.
Puteti downloada prezentarea de aici (e facuta foarte simplist, in vreo 2 zile, si trebuia prezentata unora care nu au treaba cu asa ceva):
http://www.riftgame.com/download/GPU_CollisionDetection.zipDemoul inca nu l-am pus, dar cand e finalizat o sa-l urc si pe el.
Ideea e destul de basic, se foloseste la baza tehnica de face counting cu stencil bufferul (ca la stencil shadows de ex) pentru verificarea intersectiilor edgeurilor cu fetele obiectelor (ale caror id-uri sunt codate in culoare). Dupa care se descarca imaginea pe CPU si se proceseaza raspunsul la coliziuni (aici intra in scena CUDA, pentru accelerarea procesului de readback).
Castigul de performanta este extrem de mare si creste cu atat mai mult cu cat creste numarul obiectelor din scena.
Daca o sa fac vreun articol mai serios trebuie sa-mi pun si Vista, fiindca se pot face niste treburi foarte misto cu geometry shaders.
Cam atat, enjoy, iar daca aveti vreo idee constructiva please share.