Android에서 OpenGL ES 3.0 응용 프로그램을 주로 Java로 개발 중이며 부동 소수점 렌더링 텍스처를 사용해야합니다.Android에서 OpenGL ES 확장 기능을 사용하는 방법
GLES30.glGetString(GLES30.GL_EXTENSIONS)
는 => 내 장치가 분명히 소수점 텍스처 부동 지원하는 다른 사람의 사이에서 GL_EXT_color_buffer_half_float 포함 된 문자열을 반환하고, GL_EXT_color_buffer_float.
그러나 지금은 확장자를 사용하는 방법이 약간 분실되어 있습니다. 내가 대신 GL_RGBA16F의 GL_RGBA를 사용할 때 glError 1282. 모든 일에 호출
GLES30.glTexImage2D(GLES30.GL_TEXTURE_2D, 0, GLES30.GL_RGBA16F, 512, 512, 0, GLES30.GL_RGBA, GLES30.GL_UNSIGNED_BYTE, null);
결과는 작동합니다. GL_RGBA16F_EXT를 사용해보고 싶었지만 GLES30에는 포함되어 있지 않습니다. 그래서, 나는 GL_RGBA16F_EXT가 정의 된 방법 인 0x881A라는 값을 전달하려했다. 그러나 같은 오류 : glError 1282.
OpenGL ES 확장을 사용하기 위해 때때로 필요로하는 함수 eglGetProcAddress가 있습니다. 그러나 함수의 주소가 필요하지 않기 때문에 저도 도움이되지 않습니다. 나는 다음에 무엇을 시도해야할지 정말로 모른다. 부동 소수점 FBO는 어떻게 만들 수 있습니까?
아, 네 말이 맞아. 감사! 나는 type 매개 변수가 data 매개 변수와 연관되어 있으므로 data = null이므로 type에 대해 지정하는 것이 중요하지 않을 것이라고 생각했습니다. 분명히, 거기에 뭔가 오해했습니다 - 어떤 효과가 형식 매개 변수가 있습니까? internalFormat이 모든 것을 지정하지 않습니까? GPU는 알아야합니까? – j00hi
시도해보고 내용을 추가했습니다. 그렇다고하더라도 논리적으로 설명하기는 어렵습니다. 이러한 API 중 일부가 정의되는 방식이 완전히 엉망이기 때문입니다. –