Использование Tiler в размере 100% указывает на то, что узкое место соответствует размеру геометрии, передаваемой в графический процессор .По моему опыту, все, что вы можете сделать, чтобы уменьшить размер геометрии, может привести к почти линейному сокращению времени рендеринга.Эти шаги по настройке работали для меня в прошлом:
Если вы еще этого не сделали, вы можете использовать индексирование, которое может сократить геометрию, исключив некоторые избыточные вершины.Графические процессоры PowerVR в устройствах iOS также оптимизированы для использования индексированной геометрии.
Попробуйте использовать меньший тип данных для информации о вершине.Я обнаружил, что могу использовать GLshort вместо GLfloat для своих вершин и нормалей, не теряя много точности в рендеринге.Это значительно сократит вашу геометрию и приведет к хорошему увеличению скорости рендеринга.
Объедините вершины одинакового цвета и отрендерите их как одну группу с заданным цветом, вместо того, чтобы предоставлять цвет для каждой вершины.Информация.Издержки, возникающие из-за нескольких дополнительных вызовов на отрисовку, которые для этого требуются, будут значительно перевешены тем ускорением, которое вы получаете от того, что вам не нужно отправлять всю эту информацию о цвете.Я видел сокращение времени рендеринга на ~ 18% благодаря объединению цветов в одной из моих более крупных моделей.
Вы уже используете VBO, так что вы воспользовались этой оптимизацией.
Не останавливайте конвейер рендеринга в любой точке.Вырежьте все, что читает текущее состояние, как и все вызовы glGet *, потому что они действительно мешают работе графических процессоров PowerVR.
Есть и другие вещи, которые могут привести кнебольшие улучшения производительности, такие как использование чередующихся вершин, нормалей, текстурных данных в ваших VBO, выравнивание ваших данных по 4-байтным границам и т. д., но то, что я нашел выше, оказало наибольшее влияние на настройку моего собственного OpenGLПриложение ES 1.1.
Большинство из этих пунктов подробно рассмотрены в разделе " Рекомендации по работе с данными вершин " в Руководстве Apple по программированию OpenGL ES для iOS.