Основы построения 3-х мерных сцен с использованием библиотеки DirectX. Макушкина Л.А - 11 стр.

UptoLike

13
переменную типа D3DDISPLAYMODE— это структура, в которую будет
записан результат работы.
После выполнения метода GetAdapterDisplayMode текущий формат пиксела
можно
определить через свойство Format структуры D3DDISPLAYMODE.
Устанавливаем параметры представления, которые специфичны для
оконного режима:
d3dpp.BackBufferFormat = d3ddm.Format;
d3dpp.SwapEffect = D3 DSWAPE FFECT_DIS CARD;
d3 dpp.Windowed = TRUE;
Здесь мы устанавливаем формат пиксела, эффект переключения между
буферами и указываем на необходимость использования оконного режима. Для
оконных приложений оптимальным будет применение переключения между
буферами D3DSWAPEFFECT_DISCARD. Однако вы должны учитывать, что
задний буфер при этом сбрасывается.
Далее снова идет код, который идентичен для обоих режимов. Мы
сформировали такую большую структуру представления ради создания
устройства Direct3D. В этот момент будут созданы дополнительные буферы, и
если установлен полноэкранный режим, то произойдет переключение режима в
соответствии с выбранными параметрами.
Для создания Direct3D-устройства используется метод CreateDevice
интерфейса iDirect3D, который мы инициализировали в самом начале. В общем
виде метод выглядит следующим образом:
HRESULT CreateDevice( UINT Adapter, D3DDEVTYPE DeviceType,
HWND hFocusWindow, DWORD BehaviorFlags,
D3DPRESENT_PARAMETERS *pPresentationParameters,
IDirect3DDevice9** ppReturnedDevicelnterface
) ;
Устройство создано, и мы готовы к работе, но еще желательно настроить
параметры камеры. Для этого используется функция
D3DXMatrixPerspectiveFovLH, которая в общем виде выглядит следующим
образом:
D3DXMATRIX* D3DXMatrixPerspectiveFovLH( D3DXMATRIX* pOut,
FLOAT fovy, FLOAT Aspect,
FLOAT zn, FLOAT zf
) ;
Рассмотрим параметры этой функции:
pout указатель на структуру D3DXMATRIX, через которую мы
получим результат работы;
fovy — угол обзора;
Aspect — соотношение сторон;
zn— расстояние до ближней плоскости отсечения. Все, что находится
ближе, считается невидимым;
zf— расстояние до дальней плоскости отсечения. Все, что находится
дальше, считается невидимым.
    −  переменную типа D3DDISPLAYMODE— это структура, в которую будет
       записан результат работы.
    После выполнения метода GetAdapterDisplayMode текущий формат пиксела
можно определить через свойство Format структуры D3DDISPLAYMODE.
    Устанавливаем параметры представления, которые специфичны для
оконного режима:
d3dpp.BackBufferFormat = d3ddm.Format;
d3dpp.SwapEffect = D3 DSWAPE FFECT_DIS CARD;
d3 dpp.Windowed = TRUE;
    Здесь мы устанавливаем формат пиксела, эффект переключения между
буферами и указываем на необходимость использования оконного режима. Для
оконных приложений оптимальным будет применение переключения между
буферами D3DSWAPEFFECT_DISCARD. Однако вы должны учитывать, что
задний буфер при этом сбрасывается.
    Далее снова идет код, который идентичен для обоих режимов. Мы
сформировали такую большую структуру представления ради создания
устройства Direct3D. В этот момент будут созданы дополнительные буферы, и
если установлен полноэкранный режим, то произойдет переключение режима в
соответствии с выбранными параметрами.
    Для создания Direct3D-устройства используется метод CreateDevice
интерфейса iDirect3D, который мы инициализировали в самом начале. В общем
виде метод выглядит следующим образом:
HRESULT CreateDevice( UINT Adapter, D3DDEVTYPE DeviceType,
        HWND hFocusWindow, DWORD BehaviorFlags,
        D3DPRESENT_PARAMETERS *pPresentationParameters,
        IDirect3DDevice9** ppReturnedDevicelnterface
        ) ;
    Устройство создано, и мы готовы к работе, но еще желательно настроить
параметры      камеры.      Для      этого      используется     функция
D3DXMatrixPerspectiveFovLH, которая в общем виде выглядит следующим
образом:
D3DXMATRIX* D3DXMatrixPerspectiveFovLH( D3DXMATRIX* pOut,
        FLOAT fovy, FLOAT Aspect,
        FLOAT zn, FLOAT zf
        ) ;
    Рассмотрим параметры этой функции:
    − pout — указатель на структуру D3DXMATRIX, через которую мы
       получим результат работы;
    − fovy — угол обзора;
    − Aspect — соотношение сторон;
    − zn— расстояние до ближней плоскости отсечения. Все, что находится
       ближе, считается невидимым;
    − zf— расстояние до дальней плоскости отсечения. Все, что находится
       дальше, считается невидимым.

                                      13