经过大量调试后,我发现着色器代码中的线条甚至无法正确加载游戏:
out_Color = vec4(totalDiffuse,1.0) * textureColour + vec4(totalSpecular,1.0);
out_Color = mix(vec4(skyColour,1.0), out_Color, visibility);
out_Color = vec4(pass_tangent, 1.0);
其中out_Color是片段着色器的输出。当我注释出切线或将out_Color与天空颜色混合时,代码可以工作。我也知道没有必要计算out_Color,只是将它设置为切线,但它只是出于调试目的。 顺便说一句,我正在使用lwjgl(Java)来解决这些问题,如果这很重要的话。
编辑: 它不仅冻结时设置为切线,而且任何颜色!