在处理 3 中将代码实现为着色器

问题描述

我最近在处理 3 中创建了一个简单的程序,将每个像素设置为其位置作为颜色。

void setup()
{
  size(960,960);
}

void draw()
{
  for(int j = 0;j < height;j++)
  {
    for(int i = 0;i < width;i++)
    {
      set(i,j,color(map(i,width,255),map(j,height,0));
    }
  }
}

我如何将其实现为着色器?

注意:我已经在网上看过了,并没有真正找到答案。

解决方法

如果你还不是很熟悉着色器,你应该先看看这个页面:https://processing.org/tutorials/pshader/

您可能想要的是绘制一个覆盖整个屏幕的矩形,并使用内置的 GLSL 变量 X = np.array(list(df['mfcc']),dtype=np.float) X0 = np.zeros((50000,273)) for index,value in enumerate(df['attr1']): X0[index][0] = value X = np.hstack((X,X0)) ,它为您提供 gl_FragCoord 中当前像素的索引和x 很像你的循环变量 yi。请参阅 https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/gl_FragCoord.xhtml 以获取完整文档

还要记住,片段着色器输出的值在 0 到 1 的范围内,而不是 0 到 255。所以最后相关的着色器代码可能看起来像:

j