Рассмотрим созданную нами сцену более детально.
Цвета
Белая сфера -- это хорошо, но как насчет других цветов? POV-Ray использует цветовую модель RGB. Цвет определяется вектором вида:
<red,green,blue>
-- первый компонент задает красный цвет, второй -- зеленый, а третий -- синий.
Каждый компонент цвета изменяется от 0 (нет компонента) до 1 (максимальное значение компонента). Например, красный цвет задается как: <1,0,0> -- компонента красного цвета на максимуме, компонент других цветов нет.
Еще примеры:
Цвет | |
---|---|
Зеленый | <0,1,0> |
Оранжевый | <1,0.5,0> |
Голубой | <0,1,1> |
Темно-коричневый | <0.5,0.3,0.1> |
Если вы еще не привыкли к модели RGB, вот вам несколько правил:
- Одна компонента отвечает за добавление соответствующего цвета -- красного, зеленого или синего. Например, синий цвет задается третьей компонентой
<0,0,1>
, а более темный его оттенок можно получить, уменьшая значение этой компоненты:<0,0,0.5>
. - Красный + Зеленый = Желтый. Значит вектор
<1,1,0>
задает желтый цвет. - Красный + Синий = Фиолетовый.
- Зеленый + Синий = Голубой.
- Коричневый цвет состоит в основном из красного цвета, небольшой доли зеленого и совсем маленькой -- синего. Например:
<0.8,0.4,0.1>
. - Максимальное значение всех компонент дает в результате белый цвет, а когда все компоненты равны 0, получается черный.
- Если вы хотите получить более светлый оттенок, увеличьте значение каждой компоненты цвета. Например, если темно-красный -- это
<0.5,0,0>
, то добавив к каждой компоненте по 0.5 получим розовый:<1,0.5,0.5>
.
Добавим нашему первому рисунку цветов. Как насчет того, чтобы перекрасить сферу в желтый цвет?
sphere
{ <0,0,0>,2
pigment
{ color <1,1,0>
}
}
А еще добавим источник света. Он будет светить красным и располагаться в левой части сцены:
light_source
{ <-20,0,0>
color <1,0,0>
}
Запустим POV-Ray и увидим...
Картинка стала веселее, не так ли?
Кстати, вектор цвета может иметь и больше трех компонент. Что это за компоненты мы скоро выясним.
Объявление переменных
Довольно неудобно писать <0.8,0.4,0.1>
всякий раз, когда нужен коричневый цвет, особенно если в сцене много объектов этого цвета. Чтобы сократить запись, создадим переменную, присвоим ей значение цвета, и будем использовать ее всякий раз, когда этот цвет нам понадобится. Переменная объявляется следующим образом:
#declare Name = Value;
Name
-- имя переменной, Value
-- ее значение. Пробелы вокруг =
не обязательны.
Например, чтобы задать красный цвет, создадим переменную Red
:
#declare Red = <1,0,0>;
Теперь мы можем переписать наш источник света так:
light_source
{ <-20,0,0>
color Red
}
Значениями переменных могут быть числа, векторы и объекты.
Вложенные файлы
В рассмотренном нами примере весь код помещался в одном файле (test.pov
), но его можно было бы разделить и на насколько файлов -- это удобно при создании масштабных сцен. Кроме того, вместе с POV-Ray поставляется целая библиотека файлов с готовыми настройками и функциями. Например, в файле colors.inc
содержатся переменные, определяющие различные цвета. Есть там и переменная Red
, так что самостоятельно создавать ее не нужно. Чтобы получить доступ к этим переменным, запишем в начале нашего файла:
#include "colors.inc"
Это работает точно также, как если бы вы скопировали содержимое colors.inc
и вставили его в ваш файл вместо строки с #include
.
Теперь можно переписать наш пример следующим образом:
#include "colors.inc"
camera
{ location <0,0,-10>
look_at <0,0,0>
angle 35
}
light_source
{ <10,20,-20>
color White
}
light_source
{ <-20,0,0>
color Red
}
sphere
{ <0,0,0>,2
pigment
{ color Yellow
}
}
Комментарии
comments powered by Disqus