Recientemente comencé un proyecto, construyendo un motor de física. Esperaba que me pudieran dar algunos consejos relacionados con alguna documentación y / o las mejores tecnologías para esto.
En primer lugar, he visto que Game-Physics-Engine-Development es muy recomendable para la tarea en cuestión, y me preguntaba si podría darme una segunda opinión. ¿Debería obtenerla? Además, mientras navegaba en Amazon, me topé con Game Engine Architecture y, dado que quiero construir mi motor de física para juegos, pensé que esta también podría ser una buena lectura.
En segundo lugar, sé que simular física es muy intensivo en computación, por lo que me gustaría usar CUDA o OpenCL. En este momento me estoy inclinando hacia OpenCL, porque funcionaría en los conjuntos de chips NVIDIA y ATI. ¿Qué sugieren ustedes?
PD: implementaré esto en C ++ en Linux.
fuente
Maik tiene razón, los documentos de Baraff son un excelente comienzo, pero no olvides la reseña de Chris Heckers sobre la dinámica del cuerpo rígido: http://chrishecker.com/Rigid_Body_Dynamics .
También su consejo sobre "[..] tirarás tu motor" es completamente cierto. ¡Pero aprenderás mucho!
Con respecto a la parte de CUDA / OpenCL de su pregunta: Si conoce CUDA, cambiar a OpenCL se vuelve muy fácil. Recomiendo aprender CUDA primero, porque hay muchos buenos tutoriales, código de ejemplo y bibliotecas de computación. Por ejemplo:
Pero tenga en cuenta: comenzar con CUDA es fácil, comenzar con la simulación física es un poco más difícil, ¡pero combinar ambos es todo un desafío!
fuente
Empecé con Baraff también, pero ya está un poco anticuado. Lo que necesita son solucionadores iterativos y la mejor información sobre el papel es Dyanmics iterativos de Erin Catto . Tienes todo lo que necesitas para implementar tu motor de física. Puede profundizar un poco en la tesis doctoral de Erleben si necesita más detalles (como articulaciones y más cosas de matemáticas), pero eso es todo. Desearía haberlo encontrado desde el principio: revisa un poco el foro Bullet, hay mucha información allí (tal vez demasiado).
En cuanto a los libros, muchos de los libros son decepcionantes, pero recomiendo la animación basada en física de Kenny Erleben o Game Physics Pearls.
No sé mucho sobre CUDA / OpenCL (aunque siempre quise hacerlo) pero definitivamente deberías ver el trabajo de Takahiro Harada.
fuente