ПРОГРАМИРУЕМ 3D ГРАФИКУ ИСПОЛЬЗУЯ DirectX



         

Введение - часть 5


Тем не менее в этой книге я решил поступить с примерами иначе — с самого начала представлять читателю практически весь код, а потом детально рассматривать только те фрагменты, которые необходимы для каждого примера. Я выбрал такой подход, поскольку для создания даже самого первого примера требуется достаточно большой объем кода. Хотя ничего лишнего в нем нет, на самом деле вам не обязательно с самого начала знать, как все это работает (кроме того, использование единой кодовой основы во всех примерах сокращает вероятность появления мелких ошибок). Я разработал библиотеку, содержащую общий код для всех моих примеров: библиотеку 3dPlus.

Если вас беспокоит производительность работы приложения с большим объемом кода на C++, позвольте вас заверить, что прослойка C++ на самом деле очень тонка. Во многих случаях устанавливается прямое соответствие между вызовом функции класса C++ и обращением к функции СОМ-интерфейса Direct3D;

если пожелаете, можно обойти прослойку C++ и работать напрямую с интерфейсом Direct3D. На самом деле, по мере развития вашего приложения, вы непременно придете к выводу, что в моей библиотеке реализованы не все необходимые функции. В этом случае можно либо самостоятельно расширить библиотеку, либо непосредственно обращаться к интерфейсу Direct3D.

Интерфейс Direct3D

Система Direct3D построена на основе СОМ — составной объектной модели (Component Object Model), технологии, которая используется фирмой Microsoft при создании операционной системы следующего поколения (кодовое наименование Cairo). Direct3D — одно из первых дополнений Windows, использующее эту технологию, если не считать подсистемы связывания и внедрения объектов (OLE). СОМ-объекты при программировании на C++ играют ту же роль, что и библиотеки динамической компоновки (DLL) при программировании для Windows на языке С. Это не значит, что СОМ-объекты могут использоваться только в приложениях, написанных на C++; скорее речь идет о том, что СОМ-объекты предоставляют хорошую основу для создания системных компонентов. Кроме того, они прекрасно уживаются с программами на C++.




Содержание  Назад  Вперед