Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование с нуля - это совсем просто! 182) Программирование 3D-игр: Источники света


Школа программирования

182) Программирование 3D-игр: Источники света

Свет

Создание источника света выполняется командой

CreateLight ( type )

Она возвращает идентификатор источника света.

Чтобы в игре были видны объекты, необходимо создать хотя бы один источник света. Значения параметра type - следующие.

1 - направленный источник света (солнце). Все предметы будут отбрасывать тени, и могут закрывать другие объекты. Считается, что солнце имеет неограниченный диапазон лучей света и неизвестное местонахождение (имеется везде).

2 - точечный источник (лампа, факел). Напоминает предыдущий, только его яркость с расстоянием затухает.

3 - поток света (прожектор, маяк). Конус света, направленный в определенном направлении. Характеризуется двумя углами - внутренним углом конуса (яркий свет) и внешним (внешняя, более темная область вокруг яркого пятна).

Важно! В сцене может быть максимум 8 источников света (некоторые видеокарты позволяют создавать до 16 источников). Каждый источник снижает скорость формирования сцены.

Дальность действия источника света определяется командой

LightRange light, range#

Дальность задается вторым параметром (значение по умолчанию - 1000).

Цвет источника света задается командой

LightColor light, red#,green#,blue#

где red#,green#,blue# - RGB-составляющие в диапазоне от -255 до 255. Соответственно, команда

LightColor light, 0,0,0

ничего в сцене не меняет,

LightColor light, -255, -255, -255

делает все темным, а

LightColor light, +255, +255, +255

заливает все белым.

Для управления прожекторным источником света можно воспользоваться командой

LightConeAngles light, inner_angle#,outer_angle#

Второй и третий параметры - внутренний и внешний углы прожектора в градусах. По умолчанию - 0,90 - то есть, внутреннего яркого пятна нету, а внешнее составляет 90 градусов. Комбинируя различные значения этих параметров, можно получать удивительные световые эффекты.

Непрерывный свет

Команда

AmbientLight red#,green#,blue#

создает "непрерывный" источник света заданного RGB-цвета, который равномерно освещает все объекты, не создавая теней. Применяется, как правило, в сценах в качестве дополнения к "реальным" источникам.

Задание. Создайте объект-шар, за ним - местность (terrain), и посмотрите, как шар будет отбрасывать на нее тени при использовании источников разных типов.


(c) 2004-2007 Сергей Бобровский : bo собака russianenterprisesolutions.com

Школа программирования с нуля
Все предыдущие выпуски базового курса всегда тут:
http://www.infiltration.ru/p/

Неофициальный сайт поддержки (со срочными вопросами - сюда):
www.prog-begin.net.ru.


Мои книги (учебные курсы) "Технологии Delphi / C++ / C#".
http://shop.piter.com/publish/authors/17681/191180213/
Дизайн рассылки: Алексей Голубев - Web-дизайн и web-программирование


В избранное