Как тебе объяснить.
Язык - это просто набор команд , которые через определенное кол-во проходов преобразуются в двоичный код для процессора. Обычно язык программирования не дает средств для вывода какой-либо полноценной графики. Максимум консоль. Для того что бы выводить полноценную графику прежде всего надо аппаратное ускорение (этого когда видеопроцессоры берут на себя часть кода с центрального процессора).
Обычно если пишут приложение , требуемое к ресурсам ПК то его ядро пишут на С/С++ , а все остальное на С#,Java и т.д.
Если хочешь работать с 3D моделями , то обязательно нужно аппаратное ускорение (иначе FPS под 10 будет). Для этого существуют библиотеки DirectX и OpenGL.
А вот саму библиотеку можно уже можно использовать в конкретном языке (DirectX можно включить в проект на С++ и C#) , OpenGL в проект на Java , C , C++).
Преимущество OpenGL над DirectX в том , что первое это набор функций , а второе набор классов. А поскольку в С нету полноценной поддержки ООП (там есть структуры - с помощью них можно сделать что-то похожее на ООП) , то под него можно только OpenGL использовать,
Также все Android'ы работают на нем.
Если хочешь ощутить всю мощь ООП , то использую QT и OpenGL.
Также еще хочу добавить , что очень часто 3-ех мерная графика реализуется через 2-ух мерную графику.
Подумай сам : в трехмерном пространстве есть три оси - x , y , z. А в двухмерном только две оси : x и y. Монитор компьютера состоит их пикселей , которые представляют собой двухмерную сетку. Получается что нам надо вывести трехмерное изображение на двухмерное пространство.
Есть такие разделы в математике : аналитическая геометрия , векторная математика , матрицы. Я клоню к тому , что на самом деле "трехмерное" изображения , допустим куба на мониторе , это результат ПРОЕКЦИИ трехмерного пространства на двухмерное.
То есть для вывода 3-ех мерное графики , надо всего лишь двухмерная графика.
Да , и , если хочешь быть тру программистом , то математику должен знать на ура! Это я тебе сам как программист говорю.