OpenGL ES 2.0과 관련된 소프트웨어를 작성하고 있습니다. GLSL을 사용하여 몇 가지 추가 특수 효과로 사진을 선물하는 것입니다.iphone 5에서 IOS 7을 사용하는 OpenGLES 2.0 문제
모든 것이 잘 작동했으며 쉐이더는 iPhone 4, iPhone 4s 및 iPhone 5 (IOS7 포함)에서 잘 수행되었습니다. 그러나 IOS7이 설치된 iPhone 5S를 사용하여 소프트웨어를 테스트했을 때 OpenGL은 내가 작성한 모든 GLSL 쉐이더에 대해 명확한 색상만을 제공합니다 (glClearColor로 변경할 수 있음). 최신 장치로는 작업 할 수 없습니다.
것을 glDrawElements에 대한 모든 첫 번째 호출이 사용 된 OpenGL은 프로그램이을 컴파일 후 (I가 중요한 경우 VBO를 사용하고 있습니다) (새로운 OpenGL을 쉐이더 프로그램을 매번 컴파일 아이폰 5S에 또 다른 비정상적인 현상이다 사용자가 특수 효과를 전환하면 은을 현재 스레드에서 약 10 초 동안 차단합니다.
나는 XCode 5와 4.6으로 컴파일하려고했는데, 두 결과 모두 똑같은 결과를 주었다.
IOS7의 프로젝트가 iPhone 5에 설치되어있어 문제가 OS 버전이나 SDK 버전이 아니어야합니다. 나는 새로운 GPU가 원인일지도 모른다고 생각하지만, 코드를 수정하거나 코드가 어디에서 실패했는지 테스트하는 방법을 모른다. 그것만을 알아내는 데 하루 종일 걸렸습니다. glDrawElements 문제.
소프트웨어의 코드가 너무 많아서 제 질문에 모든 것을 게시 할 수 없습니다. 누군가가 나에게 도움이나 아이디어를 줄 수 있다면 감사 할 것입니다.
질문을 더 잘하기 위해 최신 OpenGL 쉐이더가 최신 iPhone GPU에서 실패한 것으로 보입니다. 그래서 만약 궁금하네요 :
- 최신 애플 A7 GPU 일부는 OpenGL ES 2.0 기능에 대한 지원을 차단
- 아이폰 5S
- 을 사용하여 버텍스 버퍼 오브젝트 (VBO)를 만드는 방법에 대한 몇 가지 제한이 있습니다 RenderBuffer, 프레임 버퍼 및 TextureBuffer의 아이폰 5S이 내가 지금 생각할 수있는 모든 의심스러운 부분
에 어떤 차이가 (멀티 쉐이더을 수행하는 데 사용),하지만 난 '때문에, 그것들을 테스트하는 방법을 몰라 이제는 렌더링 된 프레임 하나도 얻지 못합니다.
유일한 것은 5S 매우 게으른 상태 설정 및/또는 5 없었 엄격한 유효성 검사 규칙을 가지고 있다는 것입니다. 일반적으로 리소스를 바인딩하고 처음 사용할 때 시간이 오래 걸리는 경우 지연된 설치/할당 및 유효성 검사가 일부 필요합니다. 'glDrawElements (...)'를 비난하지 말라. 드로 그린을 할 때 마침내 커밋되는 일이없는 무언가가 당신을 놀라게 할 것이다. 아마도 정점 데이터와 아무 관련이 없으며 리소스 할당/유효성 검사와 관련이 있습니다.팁 : –
thx btw, 난 5s 사이의 OpenGL의 차이에 대해 이야기하는 문서를 찾지 못했고 그것은 priors입니다. 네가 나를 좀 줄 수 있다면 기뻐할거야. @ AndonM.Coleman – TwilightSun
나는 또한 IOS 응용 프로그램과 비슷한 문제를보고하는 사용자가 있습니다. OpenGLES 2.0 GLKView는 iPhone 5에서는 회색/흰색으로 표시되지만 다른 Apple 장치에서는 회색으로 표시됩니다. 나는 아직도 원인을 결정하려고 노력하고있다. 첫 번째 단계는 개발 환경을 Xcode 5 및 IOS 7 SDK로 업그레이드하는 것이 었습니다. – sparky