2012-11-21 5 views
2

Je suis intéressé par effectuer des calculs intensifs dans webgl, donc son fonctionnement sur GPU.Récupérer des données de webgl

La plupart des documents parlent de la façon de rendre les graphiques.

Je suis après une tâche très simple: pour une image donnée, la transformer en échelle de gris, et trouver les coordonnées des maxima locaux (pixels qui sont plus lumineux que ses voisins).

Je voudrais lancer les 'boucles' dans webgl shader, mais sortir les (x, y) des pixels maxima locaux vers le monde javascript. Est-ce faisable? Quelle est la meilleure façon de le faire, de sorte qu'il fonctionne bien en traitant les pixels en parallèle?

+0

Je ne sais pas si cela s'applique à votre cas, mais il semble que vous voulez apprendre comment faire GPGPU, et ce tutoriel a été mon point de départ: http: //www.mathematik .uni-dortmund.de/~ goeddeke/gpgpu/tutorial.html. Ce n'est pas sur OpenGL ES, mais peut-être utile ... –

+0

WebGL est une API pour le pipeline graphique limité du GPU (par opposition à CUDA ou OpenCL), donc si vous voulez aller sur le chemin de l'informatique parallèle regardez dans HTML Web Workers ] (https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers) – FrickeFresh

Répondre

3

Vous pouvez rendre le quad complet avec un shader qui échantillonne les pixels de votre texture (image) dans un carré (résolution 4x4 ou 16x16 limitée par la quantité maximale d'échantillons de texture) et affiche la couleur maximale du fragment coordonner (si nécessaire) avec la texture de résolution inférieure. Donc vous aurez une image réduite. Vous pouvez itérer pour atteindre le maximum global.

Lire cette http://www.lcg.ufrj.br/Cursos/GPUProg/GPGPU_Reductions