当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Processing PShader用法及代码示例


Processing, 类PShader用法介绍。

构造函数

  • PShader()
  • PShader(parent)
  • PShader(parent, vertFilename, fragFilename)
  • PShader(parent, vertURL, fragURL)
  • PShader(parent, vertSource, fragSource)

参数

  • parent 父程序
  • vertFilename 顶点着色器的名称
  • fragFilename 片段着色器的名称
  • vertURL 顶点着色器的网络位置
  • fragURL 片段着色器的网络位置

说明

该类封装了一个 GLSL 着色器程序,包括一个顶点着色器和一个片段着色器。它与 P2D 和 P3D 渲染器兼容,但与默认渲染器不兼容。使用loadShader() 函数加载您的着色器代码。 [注意:强烈建议使用loadShader() 创建PShader 对象,而不是手动调用PShader 构造函数。]

例子

PShader blur;

void setup() {
  size(640, 360, P2D);
  // Shaders files must be in the "data" folder to load correctly
  blur = loadShader("blur.glsl"); 
  stroke(0, 102, 153);
  rectMode(CENTER);
}

void draw() {
  filter(blur);  
  rect(mouseX-75, mouseY, 150, 150); 
  ellipse(mouseX+75, mouseY, 150, 150);
}
PImage tex;
PShader deform;

void setup() {
  size(640, 360, P2D);
  tex = loadImage("tex1.jpg");
  deform = loadShader("deform.glsl");
  deform.set("resolution", float(width), float(height));
}

void draw() {
  deform.set("time", millis() / 1000.0);
  deform.set("mouse", float(mouseX), float(mouseY));
  shader(deform);
  image(tex, 0, 0, width, height);
}

方法

  • set() 在着色器中设置一个变量

相关用法


注:本文由纯净天空筛选整理自processing.org大神的英文原创作品 PShader。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。