Я играю с GLSL в обработке, но функция текстуры не работает.
Это ошибка, которую я получил:
RuntimeException: Cannot compile fragment shader:
ERROR: 0:8: 'texture' : no matching overloaded function found (using implicit conversion)
ERROR: 0:8: 'texture' : function is not known
ERROR: 0:7: '=' : cannot convert from 'const highp float' to '4-component vector of highp float'
Это мой код:
PShader shad;
PImage testImg;
void setup() {
size(800, 600, P2D);
testImg = loadImage("testImg.jpg");
shad = loadShader("frag.frag", "vert.vert");
shad.set("asdfIMG", testImg);
shad.set("resolution", (float)width, (float)height);
noLoop();
}
void draw() {
shader(shad);
beginShape();
vertex(-1.0, 1.0);
vertex(1.0, 1.0);
vertex(1.0, -1.0);
vertex(-1.0, -1.0);
endShape();
}
Вот мой код шейдера фрагмента:
#version 330
uniform sampler2D asdfIMG;
uniform vec2 resolution;
void main()
{
vec4 texel = texture(asdfIMG, 0.5, 0.5);
gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0);
}
Это мой код вершинного шейдера:
#version 330 core
attribute vec4 position;
void main() {
gl_Position = position;
}