RTSG (my scene graph library) provides the scene graph infrastructure, I only need to rewrite rendering backend which currently use OpenRT. However RTSG is also still in development, so I have no full API to create driving application. As RTSG was designed to be very modular I plan in future to create some API to dynamically load rendering backend on demand, configure it and run rendering loop. Currently driving programs look like this:
Dmitri Rubinstein wrote:
I am a big fan of SWIG and Python, and have already ported OpenRT API to Python with SWIG.James Bigler and I have a love-hate relationship with swig.
I am interested to port my VRML scene graph library to use Manta for rendering. Currently it uses OpenRT API. Here is my thesis about this: http://graphics.cs.uni-sb.de/~rubinste/works/diplom.pdf .Neat. This sounds like an interesting project, I think we'll be happy to help.
Because Manta is now able to visualize Boeing I hope to be able to run my "Nancy in Boeing" demo (see pictures in the thesis) with Manta.
Manta provides the underlying rendering architecture and interface, the system doesn't currently have a robust scene graph. The Objects/Groups/Primitives in Manta provide targets for rays (for the most part, intersection methods), they don't provide a scene graph like OpenSG or Performer/Inventor. Manta could be embedded within a driving application (or used as a back-end to a scene graph library) which would be responsible for configuring and controlling the renderer using the basic containers. Programs like bin/manta or the various python scripts are examples of very simple driving applications.
This would be great. In order to adapt current rendering backend I need only to know how to do a couple of things. I assume that ray tracing backend has following properties:
In the Boeing777 demo, manta was embedded within a larger Performer based application which sent input to the renderer and processed the output frames. The interaction with python is similar, there is an image display mechanism that is python specific and python scripts are able to send transactions to Manta to provide input.
I have not found any reference counting code, do you allow shared objects in the scene ? How I can delete objects correctly ?We've viewed safe object deletion as the responsibility of the application (or application's scene graph in your case). As long as the driving application changes renderer state safely using transactions or callbacks provided by the Manta interface, new object instances may be swapped in or out at any time. The application level scene graph could implement object counting if necessary, although none of the simple examples we've implemented have done so. The manta_new() and manta_delete() methods in python manipulate the python garbage collection mechanism.
Is there any simple example of rigid body animation ? Something like creating object from triangles and change its transformation matrix depending on time and render in loop.Yes. I have some python scripts which animate rigid bodies (textured spheres I think). This is accomplished using serial animation callbacks. I can try to dig up an example and make it available.
The only limitation that I see currently is an absence of some parametrization interface like in OpenRT. Here is a simple example of a shader specification in the X3D scene (I get portions of it from here: http://www.bitmanagement.com/developer/contact/examples/shader/spec/X3DProgrammableShadersProposal.htm#X3DShaderNode):
I have found the code to set object properties on construction by passing a string vector. Is there a possibility to change properties in this way after construction ?Unfortunately not without reconstructing the object. The string based constructors are a carry over from older code bases which relied on command lines for configuration. I don't think they are very useful today. As I've needed various classes in python I've added normal constructors and get/set methods for different fields. Let us know if you see any that are missing and they can be added quickly.
We'd be happy to discuss the trade offs of different software architectures on top of Manta. I think the design is flexible, although there are some limitations.
Abe
Archive powered by MHonArc 2.6.16.