En esencia, lo que está preguntando aquí es "¿cómo puedo usar una GPU para resolver este problema?"
GPU modernas son esencialmente motores de álgebra lineal, por lo que su primer paso sería definir su problema como una matriz que transforma una coordenada de entrada < x, y> a su salida en el espacio homogéneo:
por ejemplo, representaría una transformación de escala x por y frac12 ;, escala y un 1,2, y la traducción de arriba ya la izquierda por dos unidades como:
y puede calcular transformaciones análogas para rotation, shear, etc., también.
Una vez que haya representado su transformación como una multiplicación de matriz-vector, todo lo que necesita hacer es cargar sus datos de origen en una textura, especificar su transformación como projection matrix y representarla en el resultado. La GPU realiza la multiplicación por píxel. (También puede escribir sombreadores, etc., que hacen matemática más complicada, factorizan en múltiples vectores y matrices y lo que no, pero esta es la idea básica.)
Dicho esto, una vez que tienes el problema expresado como una transformación lineal, puede hacer que se ejecute mucho más rápido en la CPU también mediante el aprovechamiento por ejemplo SIMD o uno de los many linear algebralibraries por ahí. A menos que necesite un rendimiento en tiempo real o tenga que procesar una inmensa cantidad de datos, usar CUDA/GL/shaders, etc. puede ser más problemático de lo que vale, ya que hay un poco de maquinaria torpe involucrada en inicializar las bibliotecas, configurar render objetivos, aprendiendo los detalles del desarrollo de gráficos, etc.
Simplemente convirtiendo su bucle interno de matemática ad-hoc a una subrutina de álgebra lineal bien optimizada puede darle suficiente impulso de rendimiento en la CPU que está hecho bien ahí.
versión wihch OpenGL qué objetivo? – Danvil
Esto suena un poco como la "cosa" de PhotoSynth de Microsoft. http://photosynth.net/ – epatel