Recentemente, iniciei um projeto, construindo um mecanismo de física. Eu esperava que você pudesse me dar alguns conselhos relacionados a alguma documentação e / ou melhores tecnologias para isso.
Antes de tudo, vi que o desenvolvimento de motores de física de jogos é altamente recomendado para a tarefa em questão, e fiquei pensando se você poderia me dar uma segunda opinião. Além disso, enquanto navegava na Amazon, encontrei a Game Engine Architecture e, como quero criar meu mecanismo de física para jogos, achei que poderia ser uma boa leitura também.
Em segundo lugar, eu sei que a simulação de física é altamente intensiva em computação, então eu gostaria de usar o CUDA ou o OpenCL. Agora, estou me inclinando para o OpenCL, porque funcionaria nos chipsets NVIDIA e ATI. O que vocês sugerem?
PS: Vou implementar isso em C ++ no Linux.
fonte
Maik está certo, os papéis de Baraff são um excelente começo, mas não se esqueça de escrever sobre a dinâmica do corpo rígido de Chris Heckers: http://chrishecker.com/Rigid_Body_Dynamics !
Também o conselho dele sobre "[...] você jogará seu motor fora" é inteiramente verdadeiro. Mas você vai aprender muito!
Em relação à parte CUDA / OpenCL da sua pergunta: Se você conhece o CUDA, é muito fácil mudar para o OpenCL. Eu recomendaria aprender o CUDA primeiro, porque existem muitos bons tutoriais, exemplo de código e bibliotecas de computação por aí. Por exemplo:
Mas lembre-se: é fácil começar o CUDA, começar a simulação de física é um pouco mais difícil, mas combinar os dois é um grande desafio!
fonte
Também comecei com Baraff, mas já está um pouco datado. O que você precisa é de solucionadores iterativos e o melhor artigo sobre isso é o Dyanmics Iterative de Erin Catto . Você tem tudo o que precisa para implementar seu mecanismo de física. Você pode se aprofundar um pouco na tese de doutorado de Erleben, se precisar de mais detalhes (como juntas e mais material matemático), mas é praticamente isso. Eu gostaria de tê-lo encontrado desde o início - entre no fórum do Bullet, há muitas informações lá (talvez demais).
Quanto aos livros, muitos dos livros por aí são decepcionantes, mas eu recomendo a animação baseada em física de Kenny Erleben ou a Game Physics Pearls.
Você não conhece muito o CUDA / OpenCL (embora eu sempre quisesse fazer isso), mas você definitivamente deveria conferir o trabalho de Takahiro Harada.
fonte