Estoy aprendiendo a usar gpu.js para hacer cálculos en la GPU. Puedo hacer mis cálculos para dos matrices de JavaScript a y b y mostrar el resultado como una imagen de lienzo.
Pregunta: ¿Cómo puedo acceder a los valores numéricos calculados? Los valores son generados por
const render = gpu.createKernel(function(a,b) { this.color( Math.sqrt(-2*Math.log(a[this.thread.y][this.thread.x]))*Math.cos(2*3.14*b[this.thread.y][this.thread.x]), Math.sqrt(-2*Math.log(a[this.thread.y][this.thread.x]))*Math.sin(2*3.14*b[this.thread.y][this.thread.x]), 0, 1); }).setOutput([512, 512]).setGraphical(true); Tal vez haya otra configuración en lugar de .setGraphical(true) que crea una matriz de JavaScript estándar, a la que luego puedo acceder.
O tal vez (no creo que esta sea la forma correcta) debería acceder a los valores del lienzo con algún código como
var ctx = canvas.getContext("2d"); var p = ctx.getImageData(x, y, 1, 1).data;como en Obtener color de píxel del lienzo, en mousemove
Mi código está en http://integraali.com/jsxgraph/kuvat/turbojs/kuvasta4.html (traté de poner mi código en JSFiddle, pero el código no funcionó allí. Quizás JSFiddle no permita cargar gpu.js , no se cual es el problema)
Después de 3 horas, encontré la respuesta aquí: https://gist.github.com/globalpolicy/bb74dbbe7500b9d51da00b4797c7064d
Funciona en mi sitio web: http://integraali.com/jsxgraph/kuvat/gpujs/index.html