Hello Guys,
I’m getting this exception after migrating from 3.2 to 3.3:
Uncaught exception thrown in Thread[jME3 Main,6,main] RendererException: compile error in: ShaderSource[name=Common/MatDefs/Light/PBRLighting.frag, defines, type=Fragment, language=GLSL110] ERROR: 0:203: 'constructor' : constructing matrix from matrix (reserved in GLSL 1.10) WARNING: 0:204: 'inverse' : function not available in current GLSL version - trying implict argument conversion ERROR: 0:204: 'inverse' : no matching overloaded function found - implicit conversion not allowed ERROR: 0:204: 'assign' : cannot convert from 'const float' to '3X3 matrix of float'
I compiled the sources and while a lot of tests are crashing, the basic tests are working.
So which jar should I replace in order to fix my original issue?
Thanks Stephen. This solved my problem but now I’m facing another issue with the new code:
Uncaught exception thrown in Thread[jME3 Main,6,main]
RendererException: compile error in: ShaderSource[name=Common/MatDefs/Light/PBRLighting.frag, defines, type=Fragment, language=GLSL110]
ERROR: 0:203: ‘constructor’ : constructing matrix from matrix (reserved in GLSL 1.10)
WARNING: 0:204: ‘inverse’ : function not available in current GLSL version - trying implict argument conversion
ERROR: 0:204: ‘inverse’ : no matching overloaded function found - implicit conversion not allowed
ERROR: 0:204: ‘assign’ : cannot convert from ‘const float’ to ‘3X3 matrix of float’
I think it happened tpo some time in the past and someone here helped me fixing a shader’s code but i’m not sure…
What do you think?
No, the lines 203 and 204 in the error dump / stacktrace.
Shaders have import statements, are manipulated in code etc. The final shader program that is send to the gpu is a concatenation of all of this.
When a shader fails to compile, jme dumps the complete shader that is send to the gpu. You will see that line 203, 204 (where the error is thrown) are not lines 203 and 204 in the PBRLighting.frag file.