Всем доброе время суток!
Вопрос адресуется людям имеющим опыт реализации проектов под ARM устройства, интересует какое кол-во полигонов может отображать планшет/смартфон с приемлемой производительность(хотя бы 20-25 fps) на относительно новых процессорах и GPU. Интересует на сколько высокополигональной есть смысл создавать модели. По тем играм которые можно увидеть на данный момент могу лишь предположить, что порядка нескольких десятков тысяч, но я не профессионал в этом деле и мои догадки могут иметь погрешность в несколько порядков. У кого есть опыт отпишитесь пожалуйста или киньте линк где об этом можно почитать.
nofate83
На правах рекламы :) http://www.gamedev.ru/projects/forum/?id=175751
Это если устройство на руках есть.
Сам по себе полигонаж не особо грузит мобильные устройства. Важна общая оптимизация всего и вся.
Например, пара более-менее прожорливых шейдеров, которые PC даже не заметит, могут тебе намертво повесить планшет. То же самое с физикой, материалами, анимацией, текстурами, алгоритмами в коде (тот же pathfinding) и проч.
Больше полигонажа важны и так называемые draw calls. Гугл в помощь.
В моём случае сцена будет практически статична, никакой физики и "тяжелых" фоновых алгоритмов, лишь пару листенеров на инпуты. Основные телодвижения и не большая анимация по действиям пользователяю. Инди вообщем. На счёт шейдеров, хочу сделать небольшую реку на карте средствами шейдеров unity и пару костров опять же шейдерами и системой частиц. Но они будут занимать очень малую часть экрана, поэтому не думаю что дадут большую нагрузку на сцену. Хоть как-то надо разбавить неподвижность сцены, придать каплю динамики, пока пользователь размышляет над последующими действиями.
Хотя бы на 300-400 тысяч можно рассчитывать?
На втором айпаде запускаю статичную простую сцену состоящую из ландшафта (256x256, 130050 трианглов) + 300-400 кубов. Это 60 фпс. Простецкий шейдер дифуз, 5 аттрибут вершин(позиция, текстурные координаты, нормали, бинормали, тангенты). Без оптимизаций вывода геометрии. Т.е. на каждый куб идет подключение шейдера, передача своей матрицы.
При выводе 500 кубов уже начинает проседать фпс (40-50).
Но бывают моменты, когда запускаю эту же сцену, и фпс плавает в районе 30-40. Помогает перезапуск. От чего зависит, не пойму.
И да, это сугубо моя наколенная поделка. Имеет право на жизнь только для самого себя. Думаю при должной оптимизации вывода геометрии можно добиться гораздо лучшей оптимизации. И как сказал arte_de_mort, основной просест по времени это drawcall'ы.
nofate83
> Хотя бы на 300-400 тысяч можно рассчитывать?
Что ты собираешься делать с таким количеством полигонов? Даже если тебе удастся такое количество закинуть в сцену и получить хороший fps, на маленьком экране планшета не отличишь 400 тыс от 50-ти.
Более того, если ты изначально ориентируешься на такую тяжелую геометрию, может стоит налегать на нормал мапы? Я для планшета сейчас делаю скульпты по полтора миллиона полигонов и загоняю их в модель из 1500 полигонов, а выглядит она очень детальной.
Ну да, на экране 4-5" полигональность теряет свой смысл. Разве что на 10" удастся что-нибудь разглядеть. Буду работать. Спасибо за ответы
как показал опыт портируемых с PC на iOS проектов:
к примеру https://itunes.apple.com/us/app/sherlock-holmes-awakened-hd/id506126326?mt=8
Проблемы которые давали ботелнек:
Проблема: №1 - Альфатест(кустики, заборчики) - на ipad 1 давал рваный swap dt ~ 10-30 ms
Решение: Сделали лоды с альфаблендингом отсортировали от центра индексы
Проблема: №2 - Альфабленд(кустики, заборчики) - на ipad 1 давал рваный swap dt ~ 5-10 ms
Решение: Порезали листву тем самым уменьшив филрейт, другие объекты про моделили мешами.
Проблема: №3 Филрейт - shader complexity
Решение: Сделали шейдер-лоды которые аплаются на дальние объекты.
ReeV
> Проблема: №1 - Альфатест(кустики, заборчики)
Это проблема PVR'ов - при альфа тесте не работает HSR, а после альфа теста идет write-back в ISP, в следствии чего другие треугольники которые перекрывают данный пиксель не могут рисоваться и ждут апдейта буфера глубины. Альфа бленд работает быстрее потому, что геометрия отсортирована и можно никого не ждать.
На говенной тегре, к примеру, дискард не должен так бить по производительности
>>Это проблема PVR'ов - при альфа тесте не работает HSR, а после альфа теста идет write-back в ISP,
наверное имелось ввиду TSP-discard?
ReeV
> наверное имелось ввиду TSP-discard?
Ага. Результат TSP-discard записывается в ISP буферы
StiX
> Ага. Результат TSP-discard записывается в ISP буферы
Есть ссылочка на эти схемы ?
innuendo
POWERVR Series5 Graphics SGX architecture guide for developers
ReeV
> POWERVR Series5 Graphics SGX architecture guide for developers
Спасибо. Забавно, но выяснилось, что читал эти документы - видать не внимательно :)
Тема в архиве.