Вы, вероятно, привыкли к таким языкам, как JavaScript или Python, где вы можете получить доступ к значениям (например, функциям), которые были объявлены после того момента, когда вы пытаетесь их использовать.GLSL смоделирован после C и C ++, так что это невозможно.
Если вы не хотите определять test
до main
, то вам нужно как минимум объявить it:
float test();
void main( void ) {
float color = test(); // code breaks here
gl_FragColor = vec4( vec3( color, color * 0.5, sin( color + time / 3.0 ) * 0.75 ), 1.0 );
}
float test(){return 5.0;}