Jako że jutro wyjeżdżam i nie będę miał dostępu do komputera przez dwa tygodnie, postanowiłem zabrać się za coś, o czym myślałem już od kilku miesięcy - GPGPU.
Wziąłem w łapkę dokumentację i napisałem symulator stada (popularne 'boidy') oparty przede wszystkim na OpenCL (kilka rzeczy związanych z liczeniem jest wykonywanych przez CPU, aby nie było race conditions).

Tak to się prezentuje:
shot0.png
Domyślne ustawienia (pełna symulacja, 800x600, przedstawianie boidów jako trójkąty, 1 000 jednostek, VSync) - 60 FPS.

shot1.png
Włączona uproszczona symulacja, zmieniony tryb renderowania, 300 000 jednostek - 22 FPS.

shot2.png
Pełna symulacja, 1600x700, 10 000 boidów - 10 FPS.

shot3.png
j/w, tyle że z uproszczoną symulacją - 52 FPS.

Programik wykorzystuje także myszkę - używana jest w roli łowcy (od którego boidy uciekają) lub przywódcy (do którego lgną):
shot4.png
shot5.png

Z jednej strony jest to ciekawe zagadnienie optymalizacyjne, lecz z drugiej - mój pierwszy projekt w OpenCL, więc po prostu najlepiej napisane to nie jest (choć imho źle nie ma, biorąc pod uwagę mojego Radeona 7670m);

W paczce jest kod źródłowy i binarka dla Windows x86, wrzucam dla potomnych :)

Jestem w razie czego otwarty na pytania ;)

Edit: avast się rzuca o to, że ZenGL.dll jest 'podejrzanym plikiem', ale jest to false positive, nie wiem, o co mu chodzi :P
Edit 2: a paczce jest dodatkowy Readme, oczywiście.