Тип цветовой модели задается при создании трехмерного окна. Ниже приведен соответствующий фрагмент кода:
/b> :i^a:i::-' Гпяпя 1П Г!пет u TftHh
int CMainFrame::OnCreate(LPCREATESTRUCT IpCreateStruct)
{
// Создать трехмерное окно
if (!m_wnd3d.Create(this, IDC_3DWND, D3DCOLOR_RGB)) { return -1;
t
Если при вызове функции C3dWnd::Create цветовая модель не указана, по умолчанию принимается значение D3DCOLOR_MONO.
Пожалуй, мы задержались на этой теме несколько дольше, чем я рассчитывал вначале, однако мне хотелось пояснить, почему мы переходим на RGB-модель вместо монохромной, которая до настоящего времени вполне нас устраивала.
Выбор типа освещения
Механизм визуализации DirectSD поддерживает пять разных типов освещения:
рассеянное, направленное, параллельно-точечное, точечное и зональное. Каждый тип освещения обладает определенными свойствами и сложностью обсчета и по-своему влияет на внешний вид макета. В приведенной ниже таблице перечислены свойства каждого из типов освещения.
Тип освещения | Положение | Направление | Точечный источник | Предельная дальность | Другие параметры |
Рассеянный | нет | нет | нет | нет | нет |
Направленный | нет | да | нет | нет | нет |
Параллельно-точечный | да | нет | да | нет | нет |
Точечный | да | нет | да | да | нет |
Зональный | да | да | да | да | да |
Из таблицы видно, что источники света обладают различными свойствами. Для каждого источника света можно задать RGB-значение, которое позволяет управлять как цветом, так и интенсивностью света. Давайте рассмотрим каждый тип освещения и его влияние на макет.
Рассеянный свет
Рассеянный свет обсчитывается проще всего. Он обеспечивает равномерный уровень освещения в макете, при котором все грани объектов освещаются одинаково. На Рисунок 10-1 изображен пример макета, освещенного белым рассеянным светом.
/b>
Выбор типа освещения
Рисунок. 10-1. Макет, освещенный только рассеянным светом
ПРИМЕЧАНИЕ
На самом деле свет не имеет определенной формы. Я придал свету форму лишь для того, чтобы вам было удобнее следить за положением источника и перемещать его для изменения освещенности.