Технические вопросы и ответы QA1650

Удаление мерцающий в OpenGL приложения ES

Q: Мой OpenGL мерцания приложения ES. Особенно при работе iPhone 3GS, мерцание, кажется, происходит каждый кадр. Как я решаю эту проблему?

A: Мой OpenGL мерцания приложения ES. Особенно при работе iPhone 3GS, мерцание, кажется, происходит каждый кадр. Как я решаю эту проблему?

По умолчанию содержание renderbuffer лишено законной силы после того, как он будет представлен экрану (путем вызова -EAGLContext/presentRenderbuffer:). Ваше приложение должно полностью перерисовать содержание renderbuffer каждый раз, когда Вы рисуете кадр, иначе можно наблюдать мерцание или другие неожиданные результаты.

Необходимо обеспечить цвет для каждого пикселя на экране. В начале Вашего кода для прорисовки это - хорошая идея использовать glClear() инициализировать цветной буфер. Полноэкранный свободный из каждого Вашего цвета, глубины и буферов шаблонов (при использовании их) в начале кадра может также обычно улучшать производительность приложения.

Если Ваше приложение должно сохранить drawable содержание между кадрами, можно добавить опцию kEAGLDrawablePropertyRetainedBacking = YES к Вашему CAEAGLLayer объект drawableProperties свойство. Используя эту опцию требует дополнительной памяти и может сократить производительность Вашего приложения.



История версии документа


ДатаПримечания
24.03.2010

Новый документ, демонстрирующий, как решить мерцающую проблему в OpenGL приложения ES