как визуализировать движение твердого трехмерного объекта с помощью povray

Я запускаю симуляцию твердого тела нескольких объектов и хочу визуализировать эту симуляцию с помощью povray.

Сетки объектов остаются прежними, меняется только расположение и ориентация каждого объекта. Как лучше всего итеративно генерировать изображения для фильма в povray? Я мог бы просто написать целый файл pov в каждой итерации, а затем отправить их все в povray, но поскольку каждый меш очень большой, мне бы хотелось писать его только один раз. Является ли это возможным?

И если есть лучший способ сделать это, пожалуйста, скажите мне...


person olamundo    schedule 16.05.2012    source источник


Ответы (2)


Запишите сетку в inc-файл, используя #define и дав ей имя. В вашем основном файле .pov вы должны иметь возможность определять массивы или сплайны, содержащие повороты и переводы, а затем использовать переменную clock для индексации в нее и рендеринга анимации.

person David Buck    schedule 17.05.2012
comment
Благодарность! один вопрос, однако: сплайн отлично подойдет для положения, но как насчет ориентации (в коде C++, матрица 3X3), как я могу легко преобразовать это в сплайн? - person olamundo; 17.05.2012
comment
Вы можете либо изменить матрицу 3x3 на независимые углы поворота X, Y и Z и сплайнить их, либо сплайнить все 9 компонентов матрицы. - person David Buck; 17.05.2012
comment
Либо создайте отдельный файл .pov для каждого кадра и визуализируйте их по одному. - person David Buck; 17.05.2012

Вот способ конкретизировать совет Дэвида Бака с помощью одного файла .pov, представленного в виде анимации.

#include "transforms.inc"
#declare myOriginalObj = /* you do the work here, with mesh aligned to "y axis"*/
#declare newDirection =  /* you do the work here: make new alignment vector,
     as a function of clock  */
#declare newPosition =   /*you do the work here: create vector for new position,
     as a function of clock  */
#declare newObj=object{
    myOriginalObj
    Reorient_Trans(y,newDirection)
    translate newPosition
    }
object{newObj}

дальнейшее чтение: http://povray.tashcorp.net/tutorials/dd_makesnow/

person pterandon    schedule 27.09.2012