着色器在处理3.0

时间:2015-12-23 16:43:40

标签: glsl shader processing fragment-shader vertex-shader

我一直在关注学校的一些指南,但似乎无法使它们发挥作用。我写了一个简单的草图,在3d空间中绘制了一个TRIANGLE_FAN。我想应用几个着色器,一个用于颜色,另一个用于“运动”。这是我到目前为止编写的代码(peasyCam只是一个用于摄像头控制的库);

草图:

PShader myShader;

void settings() {
  size(640, 480, P3D);
}

void setup() {

  myShader = loadShader("frag.glsl", "vert.glsl");
  shader(myShader);
  myShader.set("tint", 1.0, 1.0, 0.0);
  noLights();
}

void draw() {

  background(255);

  pushMatrix();
  translate(200, 150, -100);
  beginShape(TRIANGLE_STRIP);
  {
    vertex(-100, -100, 50);
    vertex(100, -100, 0);
    vertex(100, 100, -50);
    vertex(50, 100, 0);
    vertex(-100, 50, 50);
  }
  endShape();
  popMatrix();
}

着色器:

/////////////////////vertex/////////////////////

#define PROCESSING_COLOR_SHADER 
uniform mat4 transform;
attribute vec4 vertex;
attribute vec4 color;   
varying vec4 col;


void main(){
gl_Position *= (sin(0.04*gl_Position.y) + 2.0)/2.0;
col = color;
}

////////////////////////////////////////////////////

////////////////fragment///////////////////////////
#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif
varying vec4 col;
uniform vec3 tint;


void main() {
gl_FragColor = vec4(col.xyz*tint, 1); 
}

////////////////////////////////////////////////////

输出是形状本身,但似乎不适用任何着色器。

0 个答案:

没有答案