iOS, iSGL3D и кубики - PullRequest
       19

iOS, iSGL3D и кубики

1 голос
/ 19 ноября 2011

Я использую iSGL3D для приложения для iPad. Это довольно просто. Я хочу нарисовать 50 кубов или около того, с текстурами. При отрисовке этих 50 кубов мои «кадры в секунду» уменьшаются до 30 FPS. Если я попытаюсь нарисовать что-то вроде 150 кубиков или около того, это станет еще хуже и будет работать со скоростью около 14 FPS. Из-за характера моего приложения, может случиться так, что он должен рисовать как 300 кубов, и я даже не хочу представить, какой ужасный FPS я получу ...

Итак, давайте перейдем к делу. Я хочу знать, есть ли что-то еще, похожее на iSGL3D, но гораздо быстрее. Если я посмотрю на некоторые приложения с действительно продвинутыми 3D-сценами и прочим, то не могу представить, что мои маленькие кубики получают такой плохой FPS.

Рисованные кубы предоставляются сервером в формате JSON. Они НЕ созданы с использованием какого-либо редактора, такого как 3dsmax, Maya или что-то в этом роде. Все кубы должны быть нарисованы программно.

Я хотел бы заранее поблагодарить вас.

Роберт

Ответы [ 2 ]

2 голосов
/ 05 января 2012

Я не эксперт по ISGL3d, но в настоящее время работаю над этим, поэтому вот несколько советов, которые вы можете попытаться увеличить производительность:

  1. Если каждый из ваших кубов не используетразличные текстуры или материалы, создайте материалы в словаре или массиве, а затем назначьте их своим кубам.Если вы создаете материальный объект для каждого куба, вы тратите огромное количество ресурсов.

  2. Как сказал Макс в терминах opengl, в ISGL3D возможно сначала создать сетку, а затем создать экземпляры объектов из той же сетки (я имею в виду набор вершин) и применить преобразования при необходимости.Это значительно улучшит производительность.

  3. Не только вызовы opengl снижают частоту кадров, но и ваша программа влияет на общую производительность.Поэтому убедитесь, что ваши звонки на сервер json не влияют на частоту кадров.

0 голосов
/ 25 декабря 2011

Я предпочитаю использовать OpenGL. Это просто дает вам больше контроля.

Используйте только один набор вершин для своих кубов и изменяйте только трансформацию (перевод / масштабирование / поворот) и цвет / материал / текстуру. Этот очень простой трюк даст вам значительный прирост производительности.

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