Рассмотрим созданную нами сцену более детально.

Цвета

Белая сфера -- это хорошо, но как насчет других цветов? 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 и увидим...

test2.png

Картинка стала веселее, не так ли?

Кстати, вектор цвета может иметь и больше трех компонент. Что это за компоненты мы скоро выясним.

Объявление переменных

Довольно неудобно писать <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