Конгер Д.
Физика для разработчиков компьютерных игр
стр. 32

Это не слишком сложно. Нужно просто прорисовывать первыми самые дальние объекты, а затем прорисовывать более близкие. Это хорошо получается, если рисовать на неактивной видеостранице и переключать видеостраницы, закончив рисовать, но если рисовать на активной видеостранице, то иногда объекты заднего плана могут оказываться нарисованными поверх объектов переднего плана.

СОЗДАНИЕ УСТРОЙСТВА

Теперь мы готовы использовать интерфейс IDirect3D9, чтобы создать еще один объект - устройство (device). Объект Direct3D был довольно абстрактен, но устройство - это гораздо более конкретная вещь, соответствующая аппаратному устройству: видеокарте. Все рисование, которое вы хотите выполнять с помощью этой графической карты, будет выполняться через создаваемый сейчас интерфейс. Если вы захотите использовать вторую видеокарту (это делают немногие игры), вам понадобится второе устройство.

Чтобы создать устройство, нужно следовать той же процедуре, что и при создании других объектов. Сначала нужно объявить указатель на интерфейс IDirect3DDevice9. Часто этот указатель делают глобальным, чтобы к нему можно было обращаться из любой точки программы, в частности, из функции GameLoop (), в которой будет выполняться рендеринг:

LPDIRECT3DDEVICE9 g_pDevice = NULL; // Наше устройство

рендеринга

Устройство создается с помощью метода IDirect3D9: :CreateDe-vice(). Этот метод использует довольно много параметров, как видно из прототипа:

HRESULT CreateDevice(

UINT Adapter,

D3DDEVTYPE DeviceType,

HWND hFocusWindow,

DWORD BehaviorFlags,

D3DPRESENT_PARAMETERS *pPresentationParameters, IDirect3DDevice9** ppReturnedDevicelnterface

) ;

В первом параметре этой функции — Adapter - указывается адаптер, которому будет соответствовать создаваемое устройство. В большинстве случаев этому параметру предается значение D3DADAPTER_DEFAULT.

В параметре DeviceType указывается, будет ли использоваться для растеризации и расчета освещения аппаратное устройство или программа. Три возможных варианта перечислены в таблице 2.2. Растеризация (rasterization) - это процесс преобразования геометрических фигур, например, линий и поверхностей, в пиксели, которые можно отобразить на экране.

Новости
Геймеры собирают деньги на помощь русским сиротам
Сервис Humble Store и компания Tripwire Interactive поддержат организацию Change30. Британцы предоставляют помощь русским сиротам.
Слух: На E3 2018 покажут Cyberpunk 2077
Крупное польское видеоигровое издание GRYOnline сообщило о том, что, согласно их собственным источникам в компании, CD Projekt Red готовит к E3 2018 новый трейлер Cyberpunk 2077.