Error: Symbol defined with different precision in vertex and fragment shaders
Error: Symbol defined with different precision in vertex and fragment shaders
我正在使用 LibGDX 开发游戏。在我游戏的一个屏幕上,我只是画了一些圆圈。为此,我使用此 GitHub 存储库中的 Circle java class 来使圆抗锯齿。
https://github.com/Dych/Smooth-circle/blob/master/core/src/gdx/example/Circle.java
它在桌面和 Android 模拟器上工作得很好,但是当我尝试 运行 它在我的 Android phone (Nexus 5) 上时,它只是崩溃并显示以下消息:
com.badlogic.gdx.utils.GdxRuntimeException: --From Vertex Shader:
Error: Symbol u_projTrans defined with different precision in vertex and fragment shaders.
--From Fragment Shader:
Error: Symbol u_projTrans defined with different precision in vertex and fragment shaders.
你能帮我吗?
谢谢。
您的片段着色器使用 #def
来定义精度,无论您的设计是否使用 GL_ES。
但是您的顶点着色器中不存在相同的 #def
,因此您的顶点着色器和片段着色器之间的精度可能不同(这就是您的错误原因)。
只需添加您的顶点着色器即可解决此问题。
#ifdef GL_ES
precision mediump float;
#endif
我正在使用 LibGDX 开发游戏。在我游戏的一个屏幕上,我只是画了一些圆圈。为此,我使用此 GitHub 存储库中的 Circle java class 来使圆抗锯齿。
https://github.com/Dych/Smooth-circle/blob/master/core/src/gdx/example/Circle.java
它在桌面和 Android 模拟器上工作得很好,但是当我尝试 运行 它在我的 Android phone (Nexus 5) 上时,它只是崩溃并显示以下消息:
com.badlogic.gdx.utils.GdxRuntimeException: --From Vertex Shader:
Error: Symbol u_projTrans defined with different precision in vertex and fragment shaders.
--From Fragment Shader:
Error: Symbol u_projTrans defined with different precision in vertex and fragment shaders.
你能帮我吗? 谢谢。
您的片段着色器使用 #def
来定义精度,无论您的设计是否使用 GL_ES。
但是您的顶点着色器中不存在相同的 #def
,因此您的顶点着色器和片段着色器之间的精度可能不同(这就是您的错误原因)。
只需添加您的顶点着色器即可解决此问题。
#ifdef GL_ES
precision mediump float;
#endif