Glsl 顶点着色器动画随摄影机旋转
我是着色器新手,希望使用顶点着色器为对象设置动画 现在我只想用一个常数移动它。出于某种原因,它不是沿着世界的x方向移动,而是沿着相机的x方向移动。(因此,每当我转动相机时,对象都会随我旋转) 项目正在处理中,但我认为它不会影响着色器 处理代码:Glsl 顶点着色器动画随摄影机旋转,glsl,processing,shader,Glsl,Processing,Shader,我是着色器新手,希望使用顶点着色器为对象设置动画 现在我只想用一个常数移动它。出于某种原因,它不是沿着世界的x方向移动,而是沿着相机的x方向移动。(因此,每当我转动相机时,对象都会随我旋转) 项目正在处理中,但我认为它不会影响着色器 处理代码: PShader sdr; void setup() { size(1000, 1000, P3D); noStroke(); sdr = loadShader("shdFrag.glsl", "shdVert.glsl"); } void
PShader sdr;
void setup() {
size(1000, 1000, P3D);
noStroke();
sdr = loadShader("shdFrag.glsl", "shdVert.glsl");
}
void draw() {
background(200);
// Set camera
camera(0, -300, 700, mouseX-500, 0, 200, 0, 1, 0);
// Ground
resetShader();
beginShape();
fill(100);
vertex(-500, 0, 500);
vertex( 500, 0, 500);
vertex( 500, 0, -500);
vertex(-500, 0, -500);
endShape();
// Red Sphere
shader(sdr);
fill(255, 0, 0);
sphere(100);
}
顶点着色器:
uniform mat4 transform;
attribute vec4 position;
attribute vec4 color;
out vec4 vertColor;
void main() {
vec4 pos = position;
pos.x += 300;
vertColor = color;
gl_Position = transform * pos;
}
片段着色器:
#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif
in vec4 vertColor;
void main() {
vec4 color = vertColor;
gl_FragColor = vec4(color.xyz, 1);
}
正在发生的事情的GIF:
你能为“与我一起旋转”的意思创建一个gif吗?如果代码正在处理中,请将代码显示为,因为处理API不支持OpenGL语法(即使运行草图的JVM有办法让你编写着色器代码-这不再是真正的处理,而只是Java)所以你现在展示的肯定不是你实际使用的代码。除非你用了一些你忘记放在帖子里的东西,在这种情况下:谈谈你帖子里的东西。