2012-03-08 2 views
3

Я работаю над импортом 3D-модели CAD в приложение iOS, но им трудно определить, где это ограничение, говоря о количестве вершин и поверхностей.Модели 3D CAD с OpenGL-ES

У меня есть модель, которая имеет:

  • поверхности: 41525
  • вершины: 21504

По существу Там нет ограничений, но на самом деле взял 2hours, чтобы загрузить его в свой IOS App.

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

У меня есть модель в формате AC3D и STEP.

Я попытался уменьшить многоугольники через AC3D, но в конце концов он выглядит катастрофическим.

+2

Прежде чем выполнять что-либо еще, запустите приложение в Инструментах под Time Profiler и определите горячие точки при загрузке вашей модели. Я предполагаю, что у вас очень медленный парсер, потому что этот размер геометрии занимает меньше секунды для загрузки SQLite в моем приложении. Однако никогда не делайте предположений о производительности, профиле в первую очередь. –

+1

Для другого примера Давидо смог отобразить почти миллион треугольников в 10 FPS в своем iPad-приложении, описанном в [этом вопросе] (http://stackoverflow.com/questions/5718846/how-can-i-optimize-the- рендеринг-a-large-model-in-opengl-es-1-1), поэтому подобная геометрия тривиальна по сравнению с этим. –

+0

Спасибо за ваш ответ. Его первый раз, когда я использовал инструменты, и когда я обедаю его и выбираю Time Profiler, он приходит с ошибкой 'iOS Simulator не смог найти идентификатор процесса ....' – JavaCake

ответ

3

Там нет никакого формального ограничения, и пропускная способность вы действительно получите, будет зависеть от того, насколько грамотно вы сможете выбрать то, что рисовать, какие поверхностные эффекты, которые вы хотите применить, и т.д.

что все сказанное , заглядывая в файл STEP, он показывает, что он является чистым ASCII-кодом для обмена. Два часа настолько чрезмерны, что предлагают некоторые довольно серьезные проблемы с производительностью, выходящие за рамки анализа, но вы должны обязательно рассмотреть хотя бы токенизацию файла, прежде чем включать его в приложение.

OBJ - еще один формат ASCII, и я обнаружил, что просто токенирование файла на Mac, а затем загрузка токенизированной версии в приложении уменьшает нагрузку модели 20s до менее чем 1 с. Переключение в двоичный формат без претензий на совместимость с OBJ (так что я мог бы, прежде всего, префикс, сократить время загрузки еще больше.

+0

Это имеет неплохой смысл и смотрит на пример @Brad Larson, связанный с очевидно, что он должен иметь возможность обрабатывать эту конкретную модель, которую я имею. Но мне нужно снова просмотреть код, потому что мне понадобилось 30 минут для рендеринга модели. – JavaCake

Смежные вопросы