6
私は別の機能にいくつかのロジックをリファクタリングするまで素晴らしい仕事をしていたこのフラグメントシェイダーを持っています。お互いの上に異なるバージョンのエフェクトをレイヤーに重ねて複数回呼び出すことができるようにしたいと思います。 GLSL:私のカスタム関数が見つかりません
はしかし、すぐに私はこのカスタム関数を作成したとして、シェーダはエラーをスローを開始:それは機能として、それをコンパイルしているように見えるので、奇妙で、あるERROR: 0:33: 'grid' : no matching overloaded function found
。私はgrid()
からreturn
を削除した場合、私はあまりにも、このエラーが発生します。
ERROR: 0:36: '' : function does not return a value: grid
だから私は、関数の宣言については、ここで何をしないのですか?
全文はここシェーダ:
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);
}
うわー。恥ずかしい私はそれを試みるとは思わなかった。ありがとう。 –
ようこそ。 – rgngl