[cgkit-user] running it non-interactively
Brought to you by:
mbaas
|
From: will <va...@ya...> - 2010-08-19 22:14:59
|
I am new to all this but very enthusiastic! Thx for making this kind of software :)
On a full latest version of Ubuntu on 64bit X86. Very standard. Using the non-lite C++ version.
The helloworld sphere works find in the viewer; a simple "render.py hello.py" crashes with a segment fault.
I want to run the snowflake in the example. I have both Aqsis and Pixie installed, and after trial and error I found these library paths to work:
cgkit.cri.loadRI("/usr/lib/libaqsis_ri2rib.so")
cgkit.cri.loadRI("/usr/local/Pixie/lib/libri.so")
the first, aqsis, when run with viewer.py says:
##RenderMan RIB-Structure 1.0
version 3.03
Format 1024 768 1.000000
Display "koch.tif" "framebuffer" "rgb"
PixelSamples 3.000000 3.000000
Projection "orthographic"
Scale 0.800000 0.800000 0.800000
Translate 0.000000 0.550000 5.000000
WorldBegin
Surface "constant"
Color [ 1.000000 1.000000 1.000000 ]
Patch "bilinear" "P" [ -2.000000 2.000000 1.000000 2.000000 2.000000 1.000000 -2.000000 -2.000000 1.000000 2.000000 -2.000000 1.000000 ]
Color [ 0.000000 0.000000 0.000000 ]
Unknown procedural function.
#ERROR: Unknown procedural function.
Unknown procedural function.
#ERROR: Unknown procedural function.
Unknown procedural function.
#ERROR: Unknown procedural function.
WorldEnd
When run directly without viewer.py, it just segfaults. Invoking it with gdb shows this stack:
#0 0x00007ffff56ef7e4 in __cxa_allocate_exception ()
from /usr/lib/libstdc++.so.6
#1 0x00007ffff63044c7 in __getitem__(support3d::vec3<double>*, int) ()
from /usr/local/lib/python2.6/dist-packages/cgkit/_core.so
#2 0x00007ffff630b7d8 in boost::python::objects::caller_py_function_impl<boost::python::detail::caller<double (*)(support3d::vec3<double>*, int), boost::python::default_call_policies, boost::mpl::vector3<double, support3d::vec3<double>*, int> > >::operator()(_object*, _object*) ()
from /usr/local/lib/python2.6/dist-packages/cgkit/_core.so
#3 0x00007ffff5e5cc2e in boost::python::objects::function::call(_object*, _object*) const () from /usr/lib/libboost_python-py26.so.1.40.0
#4 0x00007ffff5e5ced8 in ?? () from /usr/lib/libboost_python-py26.so.1.40.0
#5 0x00007ffff5e64753 in boost::python::detail::exception_handler::operator()(boost::function0<void> const&) const ()
from /usr/lib/libboost_python-py26.so.1.40.0
#6 0x00007ffff62ecd67 in boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, boost::python::detail::translate_exception<support3d::ENotImplementedError, void (*)(support3d::ENotImplementedError const&)>, boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<void (*)(support3d::ENotImplementedError const&)> > >, bool, boost::python::detail::exception_handler const&, boost::function0<void> const&>::invoke(boost::detail::function::function_buffer&, boost::python::detail::exception_handler const&, boost::function0<void> const&) () from /usr/local/lib/python2.6/dist-packages/cgkit/_core.so
and so on; I'd guess this is the segfault I find when running render.py too?
Running with the pixie lib directly just segfaults.
Running viewer.py with pixie as the lib actually renders the snowflake (really quite slowly; is the snowflake deceptively expensive or is this what I should brace myself for with all rendermen?) However, when I close the koch.tif window, a second viewer window appears and then there's a segfault.
So, what is it that I actually want to use cgkit/renderman for?? This:
* I want to generate a world, renderer it to an (ideally in-memory) bitmap, do some manipulation, then rinse and repeat. Unattended, no viewer needed, low quality rendering is fine.
* I also want to know if shapes intersect one another (that would be illegal in my model, and it'd be nice if the render end can determine this for me rather than me needing to do complex polygon intersection logic
Is this possible, and how?
Sorry for the long post, but I'm really excited about cgkit!
|