CentOS6.3 x86_64でビルドした。
Python APIを利用する。
fujiyama.pyはbinフォルダに置いた。
座標空間は右手系 Y up。
fujiyama.pyを利用するには
$ export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.6/site-packages/:$HOME/Fujiyama-Renderer/bin/
レンダリングはscenesフォルダから
scenes]$ python cube01.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.6/site-packages/:$HOME/Fujiyama-Renderer/bin/
import fujiyama
si = fujiyama.SceneInterface()
#plugins
si.OpenPlugin('ConstantShader')
si.OpenPlugin('PlasticShader')
si.OpenPlugin('GlassShader')
#Camera
si.NewCamera('cam1', 'PerspectiveCamera')
si.SetProperty3('cam1', 'translate', 0, 2, 6)
si.SetProperty3('cam1', 'rotate', -11.309932474020213, 0, 0)
#Light
si.NewLight('light1', 'PointLight')
si.SetProperty3('light1', 'translate', 10, 12, 10)
#Shader
si.NewShader('floor_shader', 'PlasticShader')
si.SetProperty3('floor_shader', 'diffuse', .2, .25, .3)
si.SetProperty1('floor_shader', 'ior', 2)
si.NewShader('cube_shader', 'PlasticShader')
si.SetProperty3('cube_shader', 'diffuse', .9, .2, .2)
si.NewShader('cube_shader3', 'PlasticShader')
si.SetProperty3('cube_shader3', 'diffuse', .1, .2, .8)
si.NewShader('cube_shader2', 'PlasticShader')
si.SetProperty3('cube_shader2', 'diffuse', .1, .95, .1)
si.NewShader('dome_shader', 'ConstantShader')
si.SetProperty3('dome_shader', 'diffuse', .8, .8, .8)
#Mesh
si.NewMesh('dome_mesh', '../mesh/dome.mesh')
si.NewMesh('floor_mesh', '../mesh/floor.mesh')
si.NewMesh('cube_mesh', '../mesh/cube.mesh')
#ObjectInstance
si.NewObjectInstance('cube1', 'cube_mesh')
si.AssignShader('cube1', 'cube_shader3')
si.SetProperty3('cube1', 'translate', 1.2,.6, 0)
si.SetProperty3('cube1', 'scale', .8,.8, .8)
si.NewObjectInstance('cube2', 'cube_mesh')
si.AssignShader('cube2', 'cube_shader2')
si.SetProperty3('cube2', 'translate', 0,.6, 0)
si.NewObjectInstance('cube3', 'cube_mesh')
si.AssignShader('cube3', 'cube_shader')
si.SetProperty3('cube3', 'translate', -1.2,.6, 0)
si.NewObjectInstance('floor1', 'floor_mesh')
si.AssignShader('floor1', 'floor_shader')
si.NewObjectInstance('dome1', 'dome_mesh')
si.AssignShader('dome1', 'dome_shader')
#FrameBuffer
si.NewFrameBuffer('fb1', 'rgba')
#Properties
si.ShowPropertyList('Renderer')
#Renderer
si.NewRenderer('ren1')
si.AssignCamera('ren1', 'cam1')
si.AssignFrameBuffer('ren1', 'fb1')
si.SetProperty2('ren1', 'resolution', 640, 480)
#si.SetProperty2('ren1', 'resolution', 160, 120)
si.SetProperty1('ren1', 'raymarch_step', .01)
si.SetProperty1('ren1', 'raymarch_shadow_step', .02)
si.SetProperty1('ren1', 'raymarch_reflect_step', .02)
#Rendering
si.RenderScene('ren1')
#Output
si.SaveFrameBuffer('fb1', '../cube01.fb')
#Run commands
si.Run()
#si.Print()
画像を見るには
$ fbview cube01.fb
OpenEXRに変換は
$ fb2exr cube01.fb cube01.exr
Light設定が変更
'translate'になった。
- -
- -