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/
Комментариев нет:
Отправить комментарий