mitsuba渲染动画

该篇文章本应俩星期之前写好,无奈本人强大的拖延症和各种事情,今天做个了结好了。

本文基于 python2.7 + mitsuba0.5进行动画渲染,基本原理是对每一帧图片使用python脚本自动更新mitsuba xml文件中的obj、光源、相机、渲染器相关属性,通过mitsuba读取xml渲染每一帧图片,最终使用opengl将多帧压缩成动画视频。

本文所有代码详见 https://github.com/SXHSine/Mitsuba-Usage-with-Python27,场景基本如下所示:


代码中有三个xml文件:

scene_objs.xml 包含场景中所有obj、光源信息;

scene_integrator_cam.xml包含场景中相机信息、渲染器信息、生成图片格式信息等;

scene_main.xml为mitsuba 最终读取的xml文件,在scene_main.xml中调用了scene_objs.xml 、scene_integrator_cam.xml。

通过python脚本更新mitsuba xml文件中的obj、光源、相机、渲染器相关属性,包含三个python脚本:

animation.py 定义了动画序列类,会在生成动画的脚本中调用此脚本;

processXML.py 定义了一些基本的处理xml文件方法,可以修改xml文件中obj、camera、integrator相关信息;

cowCubeAnim.py 定义了一个动画序列,每条序列可能包含obj从a位置移动到b位置(可包含旋转)、camera的视角移动等,通过调用此脚本生成动画序列的所有图片帧,最终使用opengl将所有图片帧压缩成视频,本人在此使用的是c语言opengl压缩,代码很简单,就没有上传,哈哈哈,在此告一段落。


此方法可以肯定不是较好的方法,因为每一帧mitsuba都必须读入场景中诸如obj等信息,再进行渲染,需要消耗大量时间,但本人并没有在mitsuba中找到自动生成animation相关接口,只有出此权宜之计,希望大家有更好地方法可以分享出来♪(・ω・)ノ。

你可能感兴趣的:(mitsuba渲染动画)