Это делается с помощью специальных API - DirectX и OpenGL.
Также можно работать с фреймбуфером напрямую выводя побитно изображения в видеопамять.
Правда под виндой это реализовуется в виде отдельных оконных контекстов, а в линуксе можно получить прямой доступ к видеопамяти.
Пишу на OpenGL 4
Советую почитать
Это и
это
Есть ещё книги рецептов
раз и
дваВот примеры работы с bullet
Ну и
вот OpenGL 2 ES под Android.
К OpenGL можно обращаться из любого языка программирования так как интерфейс реализован в виде отдельной библиотеки привязанной к драйверам системы, или mesa.