Java 对图形以外的对象使用着色器输出

Java 对图形以外的对象使用着色器输出,java,parallel-processing,shader,gpu,lwjgl,Java,Parallel Processing,Shader,Gpu,Lwjgl,如果我没有弄错的话,着色器程序基本上是通过GPU并行执行的操作来运行的,与CPU相比,GPU每秒可以执行许多操作。我想知道是否有任何方法可以使用LWJGL来运行着色器程序,并将其用于绘图以外的其他用途。例如,如果我有一个任意float值的数组,另一个float[]大小相等,我想根据第一个数组中对应元素的符号,将第二个数组中的每个元素设置为-1、0或1,在我看来,应该有某种方法可以让着色器程序看起来像: in float a; out float b; void main(void){

如果我没有弄错的话,着色器程序基本上是通过GPU并行执行的操作来运行的,与CPU相比,GPU每秒可以执行许多操作。我想知道是否有任何方法可以使用LWJGL来运行着色器程序,并将其用于绘图以外的其他用途。例如,如果我有一个任意
float
值的数组,另一个
float[]
大小相等,我想根据第一个数组中对应元素的符号,将第二个数组中的每个元素设置为-1、0或1,在我看来,应该有某种方法可以让着色器程序看起来像:

in float a;

out float b;

void main(void){
    float t = 0;
    if(a > 0)
        t = 1;
    if(a < 0)
        t = -1;
    b = t;
}
浮点a中的
;
外浮b;
真空总管(真空){
浮动t=0;
如果(a>0)
t=1;
if(a<0)
t=-1;
b=t;
}
并为数组中的每个元素运行它,将第一个数组的元素作为
a
传递给它,并将第二个数组的元素设置为output
b
。我可以想象,如果可以在GPU上执行,对于非常大的阵列,这可以在更短的时间内完成,如果需要更复杂的操作,这将更加真实。我以前尝试过使用JOCL和CUDA,但运气不好,发现它非常复杂,到目前为止,我喜欢我所看到的LWJGL的简单性,所以如果有一种方法可以实现我的要求,请解释。谢谢。

您可以使用LWJGL中包含的。这允许您在GPU(和一些其他设备)上运行小程序(类似于着色器)。但对它的支持并不像OpenGL那样普遍。您可以使用它,它也包含在LWJGL中。这允许您在GPU(和一些其他设备)上运行小程序(类似于着色器)。不过,对它的支持不如OpenGL那么普遍。