2015-01-17 7 views
0

셰이더가 약 3000 줄이므로 컴파일하는 데 오랜 시간이 걸릴 수 있으므로 미리 컴파일하고 앱에 저장 한 다음 메모리에 캐시합니다. 앱을 실행하십시오.GPUImage의 경우 셰이더를 사전 컴파일하여 앱에 저장하는 방법

+0

실제 장치에서 _long_이 얼마나 걸리는가? Apple은 모범 사례 (https://developer.apple.com/library/ios/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/BestPracticesforShaders/BestPracticesforShaders.html#//apple_ref/doc/uid/TP40008793-CH7-SW4)를 제공합니다. – lazi74

+0

아이폰 6 플러스에서는 0.02 초가 걸리고, 아이폰 4에서는 약 2 초가 걸린다. 내 코드를 선택해야 할 수도 있습니다. – lbsweek

답변

1

적어도 iOS 기기에서는 (사용자 의견에 따라) OpenGL ES를 사용할 수 없습니다. Metal을 사용하면 셰이더를 사전 컴파일 할 수 있지만 GPUImage에서는 사용되지 않습니다.

그렇다면 3000 라인 쉐이더를 사용한다면 접근 방식을 재고해야합니다. 전체 GPUImage 프레임 워크에서 가장 길고 성능 집약적 인 셰이더는 86 줄입니다. 3000 라인 조각 쉐이더는 굉장히 잘 작동합니다.

가능한 한 많은 코드 (조건부 등)를 피하기 위해 이것을 더 작은 하위 작업으로 분해하거나 다시 생각해보십시오.

관련 문제