#31
24 января 2008 в 12:02
Нет, нельзя, т.к. их количество ограничено несколькими тысячами для пятен и брызг, и несколькими сотнями для кусков. ::)
#32
24 января 2008 в 12:45
А я говорю, что такой мусор нужно пускать в кольцевой буфер. Буфер имеет ёмкость, зато менеджмент будет очень примитивным. Просто в случае нового объекта заменяем объект по некоторому указателю и сдвигаем указатель к следующему. Вроде как и переполнения нет, и кучи проверок нет, и дебрисы будут максимально долго на экране, ровно до тех пор пока новые дебрисы не посыпятся. Новые объекты самым натуральным образом заменят самые старые.<br /><br />Это даже намного проще чем звуковой менеджер. Там задача похожая, канальная ёмкость ограничена, а количество звуков в теории нет. Но там нужно анализировать самые оптимальные подмены по множеству факторов, а здесь вообще халява, по кольцу сменяй всех и всё.<br /><br />Другое дело, printman, что даже хорошие идеи реализовывать некому *усиленно подмигивает printman'у*
#33
24 января 2008 в 20:53
willow это возможно воплотить только в следующем билде?<br />Или есть какой то другой способ...?<br />
#34
24 января 2008 в 20:56
кст...willow у тебя есть голова на плечах.
#35
25 января 2008 в 09:41
кхм вызовы отрисовки отнюдь не бесплатны<br />если щмат мяса я могу задержать надолго то кровавые деколи пока нет тк их рисование не оптимизированно
#36
25 января 2008 в 10:17
Так это совсем просто - нужно очередь на деколи уменьшить. А ещё лучше сделать её размер регулируемой. Всё равно эффект будет за счёт того, что деколи будут дольше на экране находиться. К тому-же представь, что каждый под себя будет размер очереди устанавливать. Зря ты так Barnes негативно к идее относишься. Ну я не верю, что какая-то лишняя нагрузка приключиться, зато вот внезапных подтормаживаний из-за деколей точно не будет, да и память будет меньше фрагментироваться, эффект в том что память на деколи выделяется при загрузке игры, освобождается по выходу из игры, а во время самой игры по сути будут меняться только координаты деколей, т.е. проседания фпс вообще исключены. Спроси любого игрока, он поддержит мысль двумя руками. И этот вариант очень легко оптимизируется т.к. предельно прост. Это как раз случай оптимизации под тупую числодробилку, просто берём и тупо прорисовываем весь массив деколей каждый кадр. Без всяких заморочек с таймерами на каждую деколь, менедментом памяти. Мой опыт подсказывает, что решение задачи в лоб очень эффективный подход. К тому же в моём варианте достигается предельно высокое отношение эффективности (читай визуальное качество) к нагрузке. Т.Е. я оптимизирую не нулевые сцены где ничего нет, а я оптимизирую самые тяжёлые сцены с кучей мусора - вот там то и будет главный и серьёзный выигрыш в производительности. Т.е. движок уже будет отимизирован постоянно разгребать завалы из деколей, и в реальном динамичном геймплее он уделает любые другие подходы влёгкую. Получать максимум фпс на кадрах где ничего нет это неверный подход, а вот получать максимальный фпс на кадрах заваленных объектами это именно то, что нужно оптимизировать.
#37
25 января 2008 в 10:23
буффер под деколи?<br />кхм от там есть так как они представляют собой массив определяемый при загрузке<br />главное отсортировать их по текстурам и вывести отрисовку из цикла.<br />те копим батчи и рисуем одним куском как ща сделано с партиклями и с алиас моделями
#38
25 января 2008 в 10:36
пусть макс количество деколей 1024.<br /><br />Тогда при инициализации игры сразу создаём 1024 объекта деколи, по выходу из игры их убиваем.<br />Ежели чего, то и статический массив можно сделать!<br /><br />Вычисление индекса на подмену:<br />номер_деколи_на_подмену = (номер_деколи_на_подмену + 1) & 1023<br /><br />У деколи флаг активности и координаты.<br />При загрузке уровня флаги активности всех деколей сбрасываем в 0<br /><br />При программировании деколи флаг активности устанавливаем в 1, устанавливаем координаты<br /><br />при прорисовке проходим весь массив и отрисовываем активные деколи. Ну а дальше как там по науке делается, сортировки, отсечения, прочее..<br /><br /><br /><br />Да, причём самым эффективным методом будет создание индивидуальных массивов под разные деколи - в таком случае будет действительно работать метод только смены координат деколей!! 8)
#39
25 января 2008 в 10:41
это инстансинг геометрии называется<br />надо искать инфу сам хз как сделать
#40
25 января 2008 в 10:55
2willow: массив обходить накладно, для скорости лучше адресованные цепочки сделать