Составители:
Рубрика:
21
ZeroMemory(&light, sizeof(D3DLIGHT9));
light.Type = D3DLIGHT_DIRECTIONAL;
light.Direction = D3DXVECTOR3(0.5f, o.Of, 0.5f);
light.Diffuse.r = light.Diffuse.g = light.Diffuse.b =
light.Diffuse.a = l.Of;
pD3DDevice->SetLight(0, Slight);
pD3DDevice->LightEnable(0, TRUE);
Давайте посмотрим, что тут происходит. Для работы с цветом используется
структура D3DLIGHT9, поэтому мы объявляем переменную light этого типа.
Перед использованием всех структур мы обнуляем их содержимое. Освещение не
является исключением, поэтому обнулим и его, чтобы незаполненные поля были
равны нулю и применялись значения по умолчанию.
В параметре туре указывается тип света. Мы будем использовать
направленный свет, поэтому в данном параметре укажем флаг
D3DLIGHT_DIRECTIONAL. Помимо этого можно применить следующие типы
освещения:
D3DLIGHT_POINT — точечный;
D3DLIGHT_SPOT — прожектор.
После этого устанавливаем направление света в свойстве Direction. В
качестве вектора будет результат D3DXVECTOR3, которому в виде параметра
передаются координаты направления вектора. Следующим этапом устанавливаем
цвет в свойстве Diffuse. Цвет освещения будет белый, поэтому во все
составляющие цвета записываем значение 1. Освещение готово и его можно
установить интерфейсу IDirect3DDevice9 с помощью функции setLight. Этому
методу передается два параметра: индекс лампочки и указатель на структуру
D3DLIGHT9, которая содержит данные об устанавливаемом свете. Каждая новая
лампочка должна иметь свой индекс. Если указать индекс уже существующей
лампочки, то старые данные будут заменены новыми. Новое освещение создано и
связано с устройством, и чтобы его включить, используем метод LightEnable.
Этому методу нужно также указать два параметра: индекс лампочки, состояние
которой мы хотим изменить, и новое значение состояния (true, чтобы включить
лампочку, и false, чтобы выключить).
Задание:
Добавить в сцену каркасный куб. На нижних гранях куба по центру
разместить по одному направленному источнику света. Свет направлен на
противоположную ребру боковую грань и описывает на ней окружность. Внутрь
куба поместить графические объекты из предыдущей лабораторной работы.
Отчет должен содержать:
Титульный лист
Цель и задание
Исходный текст программы с комментариями
ZeroMemory(&light, sizeof(D3DLIGHT9)); light.Type = D3DLIGHT_DIRECTIONAL; light.Direction = D3DXVECTOR3(0.5f, o.Of, 0.5f); light.Diffuse.r = light.Diffuse.g = light.Diffuse.b = light.Diffuse.a = l.Of; pD3DDevice->SetLight(0, Slight); pD3DDevice->LightEnable(0, TRUE); Давайте посмотрим, что тут происходит. Для работы с цветом используется структура D3DLIGHT9, поэтому мы объявляем переменную light этого типа. Перед использованием всех структур мы обнуляем их содержимое. Освещение не является исключением, поэтому обнулим и его, чтобы незаполненные поля были равны нулю и применялись значения по умолчанию. В параметре туре указывается тип света. Мы будем использовать направленный свет, поэтому в данном параметре укажем флаг D3DLIGHT_DIRECTIONAL. Помимо этого можно применить следующие типы освещения: D3DLIGHT_POINT — точечный; D3DLIGHT_SPOT — прожектор. После этого устанавливаем направление света в свойстве Direction. В качестве вектора будет результат D3DXVECTOR3, которому в виде параметра передаются координаты направления вектора. Следующим этапом устанавливаем цвет в свойстве Diffuse. Цвет освещения будет белый, поэтому во все составляющие цвета записываем значение 1. Освещение готово и его можно установить интерфейсу IDirect3DDevice9 с помощью функции setLight. Этому методу передается два параметра: индекс лампочки и указатель на структуру D3DLIGHT9, которая содержит данные об устанавливаемом свете. Каждая новая лампочка должна иметь свой индекс. Если указать индекс уже существующей лампочки, то старые данные будут заменены новыми. Новое освещение создано и связано с устройством, и чтобы его включить, используем метод LightEnable. Этому методу нужно также указать два параметра: индекс лампочки, состояние которой мы хотим изменить, и новое значение состояния (true, чтобы включить лампочку, и false, чтобы выключить). Задание: Добавить в сцену каркасный куб. На нижних гранях куба по центру разместить по одному направленному источнику света. Свет направлен на противоположную ребру боковую грань и описывает на ней окружность. Внутрь куба поместить графические объекты из предыдущей лабораторной работы. Отчет должен содержать: Титульный лист Цель и задание Исходный текст программы с комментариями 21
Страницы
- « первая
- ‹ предыдущая
- …
- 17
- 18
- 19
- 20
- 21
- …
- следующая ›
- последняя »