Программирование игр для Windows. Советы профессионала


Создание модели освещения - часть 4


д.

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

 

 

 

 

 

 

Таблица 6.2.

Дистанция (условных ед.)

Банк цвета

0-20

Банк 0(цвета 16 – 71)

20-50

Банк 1(цвета 72 – 127)

50-100

Банк 2(цвета 128 – 183)

100-бесконечность

Банк 3(цвета 184 – 239)

 

 

Аналогичная таблица может быть создана и для углов. К настоящему моменту мы еще не готовы писать программу, реализующую механизм затенения, так как для этого требуется очень мощная оптимизация. Однако я надеюсь, что вы поняли идею.

Коротко повторим: цветовая палитра разбивается на шесть областей.

§          Первая и последняя области содержат цвета, не используемые при затенении;

§          Четыре средних области представляют собой банки по 56 цветов и каждый из этих банков представляет собой производные одних и тех же первичных цветов.

Когда изображение выводится на экран, каждый пиксель рисуется наиболее ярким цветом (банк 0), к которому добавляется некоторая константа, для формирования требуемой производной. Эта константа зависит от модели освещения, определяемой либо расстоянием от объекта до игрока, либо углом, под которым игрок смотрит на поверхность.

Вот и все.

 




Начало  Назад  Вперед



Книжный магазин