我一直在关注学校的一些指南,但似乎无法使它们发挥作用。我写了一个简单的草图,在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);
}
////////////////////////////////////////////////////
输出是形状本身,但似乎不适用任何着色器。