Сообщение от Coks
Теперь хоть все встало на свои места, а то в голове не укладывалось почему буллет в 6 раз быстрее физикса.
Странно почему функция pxBodySetEntity дает такой глюк. Должно быть с точностью до наоборот! Наверно косяк враппера.
|
Думаю, я знаю почему. Если я всё правильно понял, враппер физикса даёт более низкую скорость только лишь из-за обновления позиции ентитей в самом блице - сначала делаются преобразования для углов, записываются в ентитю, а потом блиц обратно преобразует их в матрицу О_о А так время работы обновления физики практически равнозначно(что измерялось).
Какая система? Попробуй в бенчмарке функцию симуляции заменить на эту btSimulation(pt/850,1).
|
Тут у меня сейчас i5 760 2.8GHz, 4gb ram, ATI HD 5750. Но дело не в системе, я заменил на
btSimulation(.015,3) и всё стало ОК. Короче не надо туда ставить динамические значения, лучше их дискретизировать.
Примеры работают гладко и хорошо.
У меня сейчас такой фпс в бенчмарке:
bullet:
- с многопоточностью: 184-195
- без: 175-185
physx:
- 151-157
|
Их сложно сравнивать на такой сцене - по мере рассыпания ящиков фпс меняется и скачет(да и сыпятся они по разному), к тому же я не уверен что добился полностью идентичных параметров. Физикс медленее из-за вышеописанной причины.
Все эти тесты с кубиками на самом деле ничего не говорят - на них нельзя сравнивать обе системы. Нужен реальный тест, приближенный к игровому - т.е. сложный тримеш в качестве уровня, по нему раскиданы разные объекты(в том числе компаунды, хулы), и несколько рагдоллов(или просто системы со сложной иерархией джоинтов). Вот это и нужно тестить. А на кубиках в идеале будут примерно одинаковые значения.