1.Элементы программирования

1.1 Поддержка сложных сцен. 

POV-Ray является полноценным 3D инструментом, у которого чрезвычайно много функций. Cложно создать интерфейс, через который будут доступны все эти функции. (Знакомым с 3Ds Max известно, как нелегко разобраться с интерфейсом.) Кроме того, не все функции необходимы для решения конкретной задачи. В POV Ray подключение тех или иных функций реализовано через механизм подключаемых файлов. Это позволяет расширять возможности инструмента, не перерабатывая интерфейс программы.

1.2 Подключаемые файлы. 

POV-Ray имеет десятки стандартных подключаемых файлов. Приведем некоторые: colors.inc, textures.inc, math.inc, rand.inc, shapes.inc, strings.inc, functions.inc, transforms.inc finish.inc, glass.inc, metals.inc, skies.inc, stars.inc.
Очень мощная библиотека textures.inc предлагает много вариантов покраски и отделки объектов.
  • В math.inc определены операции интерполяции, поиска максимумов и минимумов, статистические функции, вычисление градиентов и др.
  • В rand.inc включены генераторы случайных функций с различными статистиками и др.
  • В shapes.inc представлены дополнительные примитивы и функции для определения параметров объектов.
  • В strings.inc включены различные функции для работы со строчными переменными.
  • В functions.inc определены объекты, построенные на основе сложных математических функций.
  • В transforms.inc представлены функции для преобразования формы объектов. Набор невелик и функции в основном линейные.
  • В glass.inc, metals.inc, skies.inc, stars.inc собраны функции для покраски материалов.

Пользователь может создавать собственные подключаемые файлы. Механизм, чем-то похожий на подключение библиотечных файлов в системах программирования. Достаточно включить в сцену строку #include "colors.inc" и доступ к цвету возможен по имени. Определено 100 цветов. Вот некоторые: Black,White, Red,Green, Blue, Yellow, Brown, Gold, DarkGreen, Orange, Pink, Violet, Brass, Copper, Bronze. В русском переводе это: черный, белый, красный, зеленый, синий, желтый, коричневый, золотой, темно-зеленый, оранжевый, розовый, фиолетовый, медный, бронзовый.

2. Объекты, макро и программирование.

Представим, что некоторый набор примитивов, операций и модификаторов дают нам законченный элемент сцены. Более того, мы предполагаем использовать этот элемент многократно, выполняя над ним операции и модифицируя его. POV-Ray позволяет сгруппировать такие строки, присвоить им имя и в дальнейшем ссылаться на набор строк по имени. Такая конструкция в SDL называется объектом. Поясним конкретным примером
#include "colors.inc"
 camera{location <-8,1,-4>  look_at  <0,0,0> angle 40
  light_source{<0, 10,-10> color White shadowless}
//--------------start  object declare ------------------
#declare wheel=union{
#declare R=2;
#declare R1=R*0.1;
plane{<0,1,-0>,-R*1.07  pigment { checker Brown, White scale 1.5}}
#declare Fi=0;
#while (Fi<2*pi) 
     cylinder{<0,0,0> <R*sin(Fi),R*cos(Fi),0>,R*0.04 pigment{Gray80}}
    #declare Fi=Fi+pi/6;
#end
torus{R,R1  rotate<90,0,0>pigment {checker Gray70, Black scale 0.05}}
torus{R*0.98,R1*1.05  rotate<90,0,0>pigment {Silver}}
cylinder{<0,0,-R1> <0,0,R1>,R1*2  pigment{Gray60}}}
//--------------end  object declare ------------------
object{wheel translate <0,0,2>}  //object realization
object{wheel translate <0,0,-2>}  //object realization
cylinder{<0,0,2> <0,0,-2>, R1 pigment{ Gray60}}

В данном примере объявлен объект wheel через конструкцию #declare wheel= . Затем выставляем его на сцену дважды через конструкцию object{wheel}. Объект использует элементы программирования. В частности конструкция #while….#end реализует цикл для построения спиц колеса.
Можно создать объект, который принимает некоторые параметры. В терминологии POV-Ray - это макро. Макро сначала декларируется, а затем используется в сцене. Полная аналогия с программными единицами в виде подпрограмм. Например, набор строк определяет макро
#macro MyMacro(a,b,c,d)
…………………………..
……………………………
# end
Для исполнения макро вставляем, строку MyMacro(2,10,5,7) , т.е. вместо формальных параметров подставляем конкретные.


3.Внешний моделлер

POV-Ray формально является комбинацией текстового редактора и рендера и не имеет штатного моделлера. Как известно моделлер позволяет создавать сцену, скрывая текстовый листинг сцены. Существуют внешние, бесплатные моделлеры, для визуального проектирование сцены, которые позволяют экспортировать сцену в POV-Ray. Это, например, LionSnake, Moray, Art of Illusion. Моделлеры, конечно не могут конкурировать с 3Ds Max, но снижают трудоемкость при создании сложных объектов.
Кроме того эти моделлеры допускают экспорт-импорт сцены в 3D формате 'obj". Тогда через моделлер загрузить модели, созданные другими 3D программами, а затем экспортировать в POV-Ray в его собственном 3D формате.

4. Анимация

POV-Ray позволяет создавать мультфильмы. Интуитивно ясно, что последовательность кадров можно создать средствами макроязыка. И действительно можно задать движение камеры, деформацию, подстановку объектов и многое прочее через программные конструкции. В ответ POV-Ray создаст последовательность кадров. Далее эти кадры можно экспортировать в доступную программу видеомонтажа и создать мультфильм.

Заключение

Безусловно, освоение POV-Ray требует определенных усилий. Впрочем это "особенность"любой программы трехмерного моделирования.. У автора есть 3-х летний успешный опыт обучения POV-Ray. В качестве обучаемых были и школьники 10-11 классов. Обычно читателю помогают ссылкой на печатные источники. В данном случае это не так. Доступны только интернет ресурсы, да к тому же англоязычные. Впрочем, грядущий переход на открытое (свободное) программное обеспечение будет стимулировать появление русскоязычных ресурсов. Например, в разработке находится сайт автора данной статьи, посвященный POV-Ray.

Литература

  • Официальный сайт POVRay.org
  • www.f-lohmueller.de
  • http://en.wikipedia.org/wiki/POV-Ray
  • http://ru.wikipedia.org/wiki/POV-Ray
  • http://www.artofillusion.org
  • http://www.stmuc.com/moray/
  • http://www.povray.org/news/

Комментариев нет:

Отправить комментарий