Vì vậy, tôi có trình đổ bóng phân đoạn này, nó hoạt động tốt cho đến khi tôi tái cấu trúc một số logic thành một hàm riêng biệt. Tôi muốn có thể gọi nó nhiều lần để xếp các phiên bản khác nhau của hiệu ứng lên trên nhau.GLSL: Hàm tùy chỉnh của tôi không được tìm thấy
Tuy nhiên, ngay sau khi tôi tạo ra chức năng tùy chỉnh này, đổ bóng bắt đầu ném các lỗi:
ERROR: 0:33: 'grid' : no matching overloaded function found
Đó là lạ, bởi vì nó dường như được biên dịch nó như chức năng. Nếu tôi loại bỏ các return
từ grid()
tôi nhận được lỗi này quá:
ERROR: 0:36: '' : function does not return a value: grid
Vì vậy, những gì tôi thiếu ở đây về tuyên bố chức năng?
Full shader ở đây:
uniform float brightness;
uniform float shiftX;
uniform float shiftY;
uniform vec4 color;
varying vec3 vPos;
void main() {
gl_FragColor = vec4(grid(200.0), 0.0, 0.0, 1.0);
}
float grid(float size) {
float x = pow(abs(0.5 - mod(vPos.x + shiftX, 200.0)/200.0), 4.0);
float y = pow(abs(0.5 - mod(vPos.y + shiftY, 200.0)/200.0), 4.0);
return (x+y) * 5.0 * pow(brightness, 2.0);
}
Wow. Xấu hổ tôi không nghĩ đến việc thử điều đó. Cảm ơn. –
Bạn được chào đón. – rgngl