![](/img/trans.png)
[英]why shader compile error with attribute int (Android opengl es2)
[英]OpenGL ES2 shader error (I think)
我只是gamedev的初学者,所以当我在Linux PC上完成即将完成的游戏测试之后,在Android Emulator上测试完之后,游戏便按预期工作了。 但是后来我在Android设备上运行游戏,屏幕的黑色给我留下了深刻的印象,它完全是黑色的。 OpenGLES跟踪后,我想我找到了一个包含错误的地方。 但是,我不知道如何解决它。 该错误在顶点着色器中某处,因为它的编译时间为16ms(!),然后GLES在着色器中的变量上给出了无效的指针(-1)。
// VERTEX SHADER
uniform float aspectRatio;
uniform float size;
uniform vec2 translateVec;
attribute vec4 vertex;
mat4 projection = mat4(
vec4(1.0/(aspectRatio*12), 0.0, 0.0, 0.0),
vec4(0.0, 1.0/12, 0.0, 0.0),
vec4(0.0, 0.0, 0.0, 0.0),
vec4(0.0, 0.0, 0.0, 1.0)
);
mat4 translate = mat4(
vec4(size, 0.0, 0.0, 0.0),
vec4(0.0, size, 0.0, 0.0),
vec4(0.0, 0.0, 0.0, 0.0),
vec4(translateVec.x, translateVec.y, 0.0, 1.0)
);
void main() {
gl_Position = projection * translate * vertex;
}
// FRAGMENT SHADER
#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
#else
precision mediump float;
#endif
uniform float color;
void main() {
gl_FragColor = vec4(color, color, color, 1.0);
}
更换
(aspectRatio*12)
至
(aspectRatio*12.0)
更换
(1.0*12)
至
(1.0*12.0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.