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



         

Свет и тень - часть 7


Классы C++ для работы с источниками света конкретного типа выглядят очень просто. Они являются производными от класса C3dLight, в котором и создается источник:

BOOL C3dLight::Create(D3DRMLIGHTTYPE type,

double r, double g, double b) {

// Создать фрейм, содержащий источник света if (!C3dFrame::Create(NOLL)) return FALSE;

// Создать объект-источник света ASSERT(m_pILight == NULL);

if (!the3dEngine.CreateLight(type, r, g, b, &m pILight)) {

return FALSE;

} ASSERT(m_pILight);

// Присоединить источник света к фрейму ASSERT (m_J3l Frame) ;

m_hr = m_pIFrame-»AddLight (m_pILight) ;

if (FAILED(m_hr)) return FALSE;

return TRUE;

}

Хватит оазговооов — давайте поогоаммиоовать "lEU 243

Источник света присоединяется к фрейму для того, чтобы мы смогли задать его положение. Источник света, создаваемый механизмом визуализации, не обладает собственным положением или ориентацией, пока он не будет закреплен за каким-нибудь фреймом. Наследование классом C3dLight свойств класса C3dFrame облегчает работу с объектами в макетах.

Цветные источники света

Я довольно долго искал какой-нибудь пример того, как цветное освещение улучшает вид макета, однако после долгих размышлений мне удалось изобрести лишь несколько простейших приложении, не имеющих никакого практического значения. Затем в один прекрасный день я увидел в чьем-то кабинете пару красно-зеленых стереоскопических очков, и это натолкнуло меня на мысль. Предлагаю вашему вниманию программу для просмотра стереоскопических изображении. Приложение находится в каталоге Stereo. Для работы с ним следует надеть стереоскопические очки. На Рисунок 10-7 показано, как будет выглядеть окно приложения, если вы вдруг снимете очки.

Рисунок. 10-7. Нестереоскопическое изображение стереоскопического объекта в зеленых тонах


Читателей, которым приходилось рассматривать стереокартинки на упаковках с кукурузными хлопьями, может удивить отсутствие на Рисунок 10-7 знакомых красно-зеленых перекрывающихся изображений. Дело в том, что моя программа воспроизводит макет в красном освещении, после чего слегка передвигает камеру и перерисовывает его в зеленом свете. Таким образом, экран может принадлежать либо зеленой, либо красной половинке рабочего цикла. Чтобы добиться полноценного стереоэффекта, запустите приложение Stereo и наденьте стереоскопические очки. При этом желательно выключить свет и остаться в темноте.




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