Я недавно начал проект по созданию физического движка. Я надеялся, что вы могли бы дать мне несколько советов, связанных с некоторыми документами и / или лучшими технологиями для этого.
Прежде всего, я видел, что Game-Physics-Engine-Development настоятельно рекомендуется для поставленной задачи, и мне было интересно, если бы вы могли дать мне второе мнение. Могу ли я получить его? Кроме того, просматривая Amazon, я наткнулся на архитектуру Game Engine и, поскольку я хочу создать физический движок для игр, я подумал, что это может быть хорошо прочитано.
Во-вторых, я знаю, что моделирование физики требует больших вычислительных ресурсов, поэтому я хотел бы использовать CUDA или OpenCL. Прямо сейчас я склоняюсь к OpenCL, потому что он будет работать как на чипсетах NVIDIA, так и на чипсетах ATI. Что вы, ребята, предлагаете?
PS: я буду реализовывать это на C ++ в Linux.
источник
Майк прав, работы Бараффа - отличное начало, но не забывайте, что Крис Хеккерс пишет о динамике твердого тела: http://chrishecker.com/Rigid_Body_Dynamics !
Также его совет на тему «[..] ты выбросишь свой двигатель» полностью верен. Но вы многому научитесь!
Относительно части CUDA / OpenCL вашего вопроса: если вы знаете CUDA, то переключение на OpenCL становится очень простым. Я бы рекомендовал сначала изучить CUDA, потому что существует очень много хороших учебников, примеров кода и вычислительных библиотек. Например:
Но имейте в виду: начать работать с CUDA легко, начать работать с симуляцией физики немного сложнее, но объединить оба это довольно сложно!
источник
Я тоже начинал с Бараффом, но сейчас он немного устарел. То, что вам нужно, - это итеративные решатели, и лучшая работа с документами об этом - « Итеративная дианмика» Эрин Катто . У вас есть все, что вам нужно для реализации вашего физического движка. Вы можете немного покопаться в докторской диссертации Эрлебена, если вам нужно больше деталей (например, суставы и больше математических вещей), но это в значительной степени так. Хотелось бы, чтобы я нашел его с самого начала - пройдитесь по форуму Bullet немного, там много информации (может быть, слишком много).
Что касается книг, многие из них разочаровывают, но я рекомендую анимацию по физике Кенни Эрлебена или Game Physics Pearls.
Не знаю много CUDA / OpenCL (хотя я всегда хотел это сделать), но вы обязательно должны проверить работу Такахиро Харада.
источник