As operações usadas para avançar em uma simulação de física são mais comuns:
- Integrar velocidade e posição
- Detecção e resolução de colisões
- Resolução de contato (em casos avançados)
Há algum tempo, deparei-me com este artigo de Stanford que propunha um esquema alternativo, que é o seguinte:
- Detecção e resolução de colisões
- Integrar velocidade
- Resolução de contato
- Integrar posição
É intrigante porque permite soluções robustas para o problema de empilhamento. Então isso me fez pensar ...
Que esquemas alternativos, se houver, estão disponíveis, simples ou complexos? Quais são seus benefícios, desvantagens e considerações de desempenho?
fonte
Outro esquema que encontrei é o da Position Based Dynamics, onde você:
Isso é para mostrar que existem de fato outros esquemas. Cada um tem seus benefícios. O PBD é bom para tecidos, por exemplo, enquanto o solucionador de velocidade semi-implícito é mais adequado para rígidos.
A etapa de detecção de colisão deve estar em algum lugar após a atualização das posições, pois não importa se você a coloca antes ou depois de uma atualização de velocidade (a menos que você esteja usando velocidade para detecção contínua). As coisas podem ficar ainda mais confusas se você usar métodos de ordem superior, como Runge-Kutta: onde você coloca a colisão e com que frequência? Acho que Kenny Erleben tem alguns parágrafos sobre isso (abordagens preguiçosas e ansiosas) no início de sua tese de doutorado.
fonte