Вы можете найти это интересным:
http://www.xbitlabs.com/news/video/display/20091001171332_AMD_Nvidia_PhysX_Will_Be_Irrelevant.html
Это предвзято... по сути, это интервью с AMD... но в нем есть некоторые моменты, которые, я думаю, стоит учитывать в вашем случае.
Из-за проблем, на которые указал Дэвид Сейлер, переключение физических движков в будущем может стать огромной/непреодолимой проблемой... особенно если игровой процесс тесно связан с физикой.
Так что, если вы действительно хотите, чтобы в вашем движке использовалось аппаратное ускорение физики СЕЙЧАС, выберите Physx, но имейте в виду, что, когда решения, подобные тем, которые постулирует AMD в этой статье, станут доступны (они абсолютно будут, но они еще не здесь), вы столкнетесь с неприятным выбором:
1) перепишите свой движок для использования (вставьте название нового кроссплатформенного физического движка с аппаратным ускорением), потенциально изменяя динамику вашей игры в Плохую сторону
2) продолжать использовать только Physx, полностью игнорируя пользователей AMD
3) попытаться заставить Physx работать на графических процессорах AMD (черт...)
Помимо идеи Дэвида использовать физический движок ЦП в качестве запасного варианта (выполняя вдвое больше работы и создавая 2 движка, которые ведут себя неодинаково), единственным другим вариантом является использование чистой физики ЦП.
Однако по мере того, как такие вещи, как OpenCL, становятся мейнстримом, мы можем увидеть, как ODE/Bullet/kin начинает включать это ... IOW, если вы сейчас кодируете его с помощью ODE/Bullet/kin, вы можете (вероятно, в конечном итоге) получить ускорение GPU «бесплатно». позже (без изменений в вашем коде). Он по-прежнему будет вести себя немного иначе с версией GPU (неизбежная проблема из-за эффекта бабочки и различий в реализации с плавающей запятой), но, по крайней мере, сообщество ODE/Bullet/kind будет работать с вами, чтобы уменьшить этот разрыв. .
Вот моя рекомендация: используйте физическую библиотеку с открытым исходным кодом, которая в настоящее время использует только ЦП, и подождите, пока она начнет использовать графические процессоры через OpenCL, CUDA, потоковый язык ATI и т. д. Когда это произойдет, производительность будет стремительно расти, и вы избавь себя от головной боли.
person
Blake Miller
schedule
14.04.2010