TL; DR: Um mecanismo é apenas uma coleção de componentes reutilizáveis.
Parede de texto: os jogos armazenam uma representação do mundo, por exemplo, você teria uma entidade como uma casa, que possui uma malha que define a aparência de sua geometria e uma posição.
Agora, você provavelmente tem mais de uma entidade. Digamos que temos um personagem controlado por jogador e algumas caixas. Quando o jogador quer se mover, você move o personagem e verifica se ele colide com alguma caixa. É aí que a física entra em jogo. Dependendo de como a física é modelada, o personagem pode simplesmente atravessar as caixas, parar na frente das caixas ou empurrá-las.
Veja bem, isso só muda o estado interno do mundo do jogo.
Depois, depois de calcular o movimento e a física, você renderizaria um quadro, por exemplo, desenharia o estado atual do mundo na tela.
OpenGL e DirectX são APIs gráficas, eles são usados apenas para renderizar coisas (por exemplo, o personagem) na tela.
Então, você está basicamente dizendo ao OpenGL / DirectX 'Eu quero desenhar o personagem na posição1 e uma caixa na posição2 e ...'.
Claro, isso é uma simplificação grosseira.
De qualquer forma, como não queremos seguir esse procedimento passo a passo o tempo todo, colocamos essas coisas em funções e classes. Portanto, podemos ter uma classe de física que detenha todas as funções necessárias para a simulação de física ou uma classe de gráficos que faça interface com a API gráfica e desenhe nossas entidades. Et voila, nós temos um motor.