Объекты iPhone и Vertex Buffer - PullRequest
2 голосов
/ 04 мая 2010

Я только что начал играть с открытыми приложениями на iphone в последние пару недель, и я смотрю на рефакторинг некоторых моих кодов для использования Vertex Buffer Objects (VBO). Прежде чем я сделаю это, я хотел бы убедиться, что это того стоит. Проблема заключается в том, что afaik единственная причина, по которой вы создаете VBO, - это перенести часть данных на видеокарту, чтобы ее не нужно было извлекать из системной памяти при ее использовании. У iPhone, однако, нет выделенного барана, о котором я знаю, поэтому я изо всех сил пытаюсь понять, почему я бы вообще выиграл от использования VBO. Я видел разговоры в Интернете с противоречивыми мнениями, и Apple, конечно же, хотела, чтобы разработчики использовали его, поэтому, вероятно, все еще есть причина их использовать, но я просто хотела посмотреть, есть ли у кого-то в SO свое мнение.

Ответы [ 3 ]

1 голос
/ 05 мая 2010

Я не видел улучшения производительности на iPhone 3G. Я переместил кучу вещей в VBO, но в конце концов поддержал их, поскольку мне стало труднее добиваться других приростов производительности. Я надеялся не на быстрое увеличение производительности на 25%.

Я где-то читал, что это может иметь значение на более новом оборудовании (3GS), но у меня нет ссылок, подтверждающих это.

0 голосов
/ 10 марта 2011

Основной причиной существования VBO является наличие статических данных на 3D-моделях. Первое узкое место, с которым вы сталкиваетесь, - это медленное копирование данных в видеопамять (с помощью недоступного блока glBegin / glEnd или glVertexPointer, glBufferData и друзей).

Давайте представим старый скринсейвер "Летящий тостер". Все тосты статичны (меняются только позиции) - зачем тратить ресурсы на копирование каждого кадра из памяти ЦП в ГП? Скопируйте его один раз с буферами и нарисуйте его одной командой. И, в зависимости от того, как вы делаете анимацию, даже анимированные тостеры можно описать статично.

Моя первая 2D-игра началась без VBO. Когда я перешел на VBO, без разницы (как у Роба). Но когда я реорганизовал использование большего количества статических буферов, FPS изменился с 20 до 40. Поскольку моя цель была достичь 30, я был удовлетворен. У меня были некоторые идеи по рефакторингу еще больше, оставив все статичным, но у меня сейчас нет времени (игра находится на рассмотрении, следующая будет).

0 голосов
/ 21 июля 2010

Это зависит. (извиняюсь).

Роб не видит улучшения для своей установки, но вот интересный пост , который действительно увидел значительное улучшение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...