HTC Desire S에서 GLES2.0을 사용하는 앱을 만들었습니다. HTC에서는 작동하지만 Samung Galaxy 탭에서는 작동하지 않습니다. 프로그램을 연결할 수 없습니다 (GLES20.glGetProgramiv (mProgram, GLES20.GL_LINK_STATUS, linOk, 0)는 -1을 제공하고 glGetError()는 1282 (잘못된 연산) 오류를 발생시킵니다.버텍스 쉐이더가 갤럭시 탭 10 (tegra 2)에서 실행되지 않습니다
graph_coord.z = (texture2D(mytexture, graph_coord.xy/2.0 + 0.5).r);
graph_coord.z = 0.2;
는 갤럭시 탭도 작동
로 : 나는 (셰이더)이 라인을 대체 . 내 쉐이더는 다음과 같습니다 쉐이더 부착 어디private final String vertexShaderCode =
"attribute vec2 coord2d;" +
"varying vec4 graph_coord;" +
"uniform mat4 texture_transform;" +
"uniform mat4 vertex_transform;" +
"uniform sampler2D mytexture;" +
"void main(void) {" +
" graph_coord = texture_transform * vec4(coord2d, 0, 1);" +
" graph_coord.z = (texture2D(mytexture, graph_coord.xy/2.0 + 0.5).r);" +
" gl_Position = vertex_transform * vec4(coord2d, graph_coord.z, 1);" +
"}";
:
mProgram = GLES20.glCreateProgram(); // create empty OpenGL Program
GLES20.glAttachShader(mProgram, vertexShader); // add the vertex shader to program
GLES20.glAttachShader(mProgram, fragmentShader); // add the fragment shader to program
GLES20.glLinkProgram(mProgram); // create OpenGL program executables
int linOk[] = new int[1];
GLES20.glGetProgramiv(mProgram, GLES20.GL_LINK_STATUS, linOk,0);
그리고 질감이 여기에로드됩니다
는GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texture_id[0]);
GLES20.glTexImage2D(
GLES20.GL_TEXTURE_2D, // target
0, // level, 0 = base, no minimap,
GLES20.GL_LUMINANCE, // internalformat
size, // width
size, // height
0, // border, always 0 in OpenGL ES
GLES20.GL_LUMINANCE, // format
GLES20.GL_UNSIGNED_BYTE, // type
values
);
당신이 그것을가 연결 할 수없는 이유로 프로그램 infolog (참조 glGetProgramiv를) 확인해 봤어? 셰이더 컴파일 상태를 확인 했습니까? 어떤 라인이 OpenGL 에러를 생성하고 있습니까? – Tim
힌트를 보내 주셔서 감사합니다! 셰이더 infolog 읽습니다. "오류 C3004 : 함수"vec4 질감 "D (sampler2D, vec2);" 이 프로필에서 지원되지 않습니다. " – vipers36