Кто-нибудь добился успеха в загрузке текстур с помощью вторичного потока на iphone?

Я пытался улучшить производительность моей игры на iphone. В большинстве случаев я загружаю все текстуры непосредственно перед рендерингом текущего кадра. Это сильно подрывает частоту кадров. Кто-нибудь пробовал загрузить текстуру во вторичный поток или что-то в этом роде?


person shakthi    schedule 15.06.2010    source источник
comment
Мне кажется, что мой вопрос является дубликатом stackoverflow.com/questions/1253145/   -  person shakthi    schedule 15.06.2010


Ответы (2)


Есть ли какая-то конкретная причина, по которой вы загружаете свои текстуры перед каждым кадром, а не один раз для всей сцены?

person caahab    schedule 15.06.2010
comment
Я не хочу сказать это перед каждым кадром. Вместо этого требуйте загрузки; Если необходимая для рендеринга текстура не загружена, я ее загрузу. - person shakthi; 15.06.2010
comment
Аааааааааааааааааааа хорошо. Так что вы уже можете проверить, какие текстуры вам нужно загрузить. В зависимости от вашей сцены вы можете делать некоторые прогнозы относительно того, что будет визуализироваться в следующем кадре (кадрах), и загружать это раньше параллельно. В зависимости от вашей стратегии загрузки вы можете заранее загрузить текстуры в системную память и при необходимости загрузить их в opengl. - person caahab; 15.06.2010

По моему опыту, вам нужно загрузить все текстуры, прежде чем начинать игру. IPhone - это устройство с одним процессором, поэтому загрузка текстур в отдельном потоке не очень поможет.

person Jens Utbult    schedule 15.06.2010
comment
Привет, Вы пробовали EAGLSharegroup (см. Ветку, о которой я упоминал)? Я попробую. - person shakthi; 15.06.2010
comment
Честно говоря, я не думаю, что вам повезет с загрузкой текстур во время игры. Ресурсов просто не хватает, и запуск загрузки текстуры в отдельном потоке не изменит этого факта. Скорее всего, вам придется загрузить все текстуры перед запуском игры. Мы действительно используем потоки и EAGLSharegroupb в нашей игре, но только для того, чтобы не блокировать пользовательский интерфейс при загрузке текстур перед запуском игры. - person Jens Utbult; 16.06.2010