Glsl 我可以在WebGL中写入纹理吗

Glsl 我可以在WebGL中写入纹理吗,glsl,webgl,Glsl,Webgl,一般情况下,首先:我试图看看是否可以通过在GPU(WebGL GLSL ES 1.0)中进行计算,更快地获得所有对最短路径图的结果。具体地说,我计划使用这样一个事实:如果W是一个nbyn矩阵,包含一个图的边权重,那么W是距离矩阵的幂 我可以在OpenGL中乘法矩阵,如下所示: uniform sampler2D a; uniform sampler2D b; uniform vec2 dimensions; uniform float size; #define MAX_INT 65536

一般情况下,首先:我试图看看是否可以通过在GPU(WebGL GLSL ES 1.0)中进行计算,更快地获得所有对最短路径图的结果。具体地说,我计划使用这样一个事实:如果
W
是一个
n
by
n
矩阵,包含一个图的边权重,那么
W
是距离矩阵的幂

我可以在OpenGL中乘法矩阵,如下所示:

uniform sampler2D a;
uniform sampler2D b;
uniform vec2 dimensions; 
uniform float size;

#define MAX_INT 65536

void main(void) {
  float r = size;
  float t = 0.0;

  for(int i = 0; i < MAX_INT; ++i){
    if (!(float(i) < r)) { break; }
    
    float andx = floor(gl_FragCoord.y) * size + float(i);   
      float bndx = float(i) * size + floor(gl_FragCoord.x); 
      
      vec4 av = getPoint(a, vec2(size, size), andx);
      vec4 bv = getPoint(b, vec2(size, size), bndx);
      t = t + av.x * bv.x;
  }
  vec4 f = encode_float(t);
  gl_FragColor = f;
}
统一采样器2da;
均匀取样器2db;
二维均匀矢量;
均匀浮动尺寸;
#定义最大整数65536
真空总管(真空){
浮动r=大小;
浮动t=0.0;
对于(int i=0;i
让两个矩阵相同,并通过在乘法周围添加一个循环来执行n次乘法是很简单的(根据和答案获取点并编码_float)


问题是如何保存每次后续乘法的结果,以便将其输入下一个循环?

结果已写入纹理。WebGL所做的就是写入纹理。纹理是画布或创建附加到帧缓冲区的纹理。已经有很多了。如果要使用结果,可以将该纹理作为输入传递给另一个着色器