From: Markus R. <rol...@un...> - 2008-04-16 18:55:48
|
Hi, Sander van Dijk wrote: > - Create a new extension of BaseRenderServer that can render from a >> VisionPerceptor (or maybe any other object in the scene graph) point of >> view and is specialized in rendering to texture. [...] > To me the last > idea seems the most appealing, so the rendering of agent views is > clearly separated from the normal view. What do you think. [...] ... I think you're right that we need to distinguish between cameras with a different purpose. But this is a second step. The first thing should be to support different cameras at all. Making this distinction based on the 'VisionPercpetor' class requires us to put this class into one of the base libraries (oxygen, kerosin...) in order to be able to test for it (using the C++ rtti you cannot test for a base class declared in a plugin as it is not know at compile time). Currently the Visionperceptor is Soccer specific and should stay it imo. I think labeling cameras using the default node name (i.e. rsg SetName function) is sufficient. If the user cycles through the cameras he can either cycles through all cameras or choose an individual camera based on the node name or other context information. If a camera shoild serve as a viewpoint for a percpetor node (e.g. the VisionPerceptor) it is the responsibility of this perceptor node to register/enable the cameras for 'render to texture' and 'serialization' to the agent (directly or indirectly via a render proxy as proposed by Yuan). This could be done in it's OnLink() methode if it has a direct camera child. In this way we can avoid any hard/special dependencies between the base libraries and percpetor nodes. cheers, Markus |