на другом форуме написал, но и тут запощу.DX, OGL - это просто API.
Мне слова Андре Ламота очень понравились, из предисловия:
Только дилетанты полагаются на аппаратное обеспечение. Настоящий программист игр может написать трехмерный процессор с нуля даже под артобстрелом, когда лопаются барабанные перепонки. При этом он сможет использовать и оборудование - если оно есть.
Две офигенные книги. Вторую читаю, первую прочел мигом, вторая по-сложнее. В сети есть pdf:) Материал по большей части не привязан ни к какой ОС. Автор учит именно программированию игр.
Андре Ламот: Программирование игр для Windows Андре Ламот: Программирование трехмерных игр для Windows
Во второй книге как этот трехмерные процессор создать.
правда мне написали:
Это устарело. Сейчас средненькие GPU _НА_ _НЕСКОЛЬКО_ _ПОРЯДКОВ_ быстрее лучших софтверных растеризаторов, работающих на топовых CPU. Поэтому OpenGL/DX приходится использовать, выбора нет.
Хотя будет Larabee, может там появится возможность выбора...
Так как GPU быстрее CPU на порядки на некоторых операциях, то оно очень хорошо помогает во многих рассчётах. См.: http://en.wikipedia.org/wiki/GPGPU
Выйдет Larrabee - вообще будет рай. Так как там чип будет состоять из тучи x86-совместимых процессоров (со специальными расширениями для графики, естественно).
Появилась идея:
Про DX10: http://www.3dnews.ru/software/vista_part_siete/ Вот это бросилось в глаза:
Классическое определение представляет DirectX как совокупность интерфейсов прикладного программирования - Application Programming Interface, API, для удобного программирования приложений под операционные системы Microsoft Windows, главным образом, для программирования игр. Говоря проще, разнообразные библиотеки–API из комплекта DirectX, представляют собой готовые наборы функций для облегчения труда программистов. Теперь им не нужно каждый раз создавать ряд типичных процессов для работы со звуком, видео и т.п., для этого в комплекте DirectX имеется ряд стандартных "кубиков" и инструментов для создания мультимедийных приложений и игрушек под Windows.
Для этого всего есть SDL, но вот с 3D API.
http://alenacpp.blogspot.com/2008/01/blog-post.html
http://parallel.ru/GPU//
http://www.3dforge.ru/gpu-gems-kniga-po-programmirovaniyu-gr......
А вот это уже любопытно - языки программирования.
http://alenacpp.blogspot.com/2007/03/nvidia-cuda-ati-ctm.html NVidia CUDA и ATI CTM
http://cuda.ixbt.com/cuda.shtml
http://www.linux-mag.com/id/6374/
http://en.wikipedia.org/wiki/BrookGPU
Любопытно попробовать перенести софтверные расчеты матриц и прочего на GPU, сделать трехмерный процессор с API, а вывод изображения и так будет идти через видяху.
В конечном счете - 3D это математика, физика и алгоритмы:)