[vtkusers] vtkSelectVisiblePoints returns all points inside frustum (ignoring occlusion)

Thomas Koletschka thomas.koletschka at gmail.com
Fri Jun 8 03:12:57 EDT 2012


Actually what I said about the need for user interaction is not completely
right - I need to change the camera parameters through user interaction
(e.g. zooming, rotating, etc.). A simple click or keystroke inside the
window without changing the camera parameters doesn't help.
I also forgot to note that I'm setting my own camera (it works when using
the default camera), so I'm guessing that those user interaction callback
functions call some camera related function that I'm missing in my code. I
set my camera as:

    vtkSmartPointer<vtkCamera> cam = vtkSmartPointer<vtkCamera>::New();
    cam->SetPosition(camPose[3], camPose[7], camPose[11]);
    cam->SetFocalPoint(camPose[3]+camPose[2], camPose[7]+camPose[6],
camPose[11]+camPose[10]);
    cam->SetViewUp(-camPose[1], -camPose[5], -camPose[9]);
    cam->SetViewAngle(2*atan((imsize[0]/2.0)/camFocal)  * 180 / M_PI);

    renderWindow->SetSize(imsize[1]/4, imsize[0]/4);
    renderer->SetActiveCamera(cam);
    renderer->ResetCameraClippingRange();

The rendering shows up just fine, it's just the vtkSelectVisiblePoints
that's not working properly.

On Fri, Jun 8, 2012 at 12:19 AM, Thomas Koletschka <
thomas.koletschka at gmail.com> wrote:

> Hello,
>
> I'm using vtkSelectVisiblePoints inside a callback function (actually I'd
> even prefer to use it outside a callback but at the moment that's the only
> way I get it to work) to get a list of all the visible non-occluded points.
> The problem is that I need to interact with the render window once in
> order to make it work correctly. If I just render my view and try to get
> all visible points I get a list of ALL points inside the frustum (i.e. it
> ignores occlusion even though the zbuffer shows the correct values when
> reading it right before the vtkSelectVisiblePoints update) but once I do
> any user interaction such as a mouse click inside the window it fixes the
> problem and vtkSelectVisiblePoints returns the correct number of visible
> points.
>
> Can anyone tell me what I might be doing wrong? I'm using the code as
> given in the example at
> http://www.cmake.org/Wiki/VTK/Examples/Cxx/PolyData/SelectVisiblePointsjust that I'm listening to a reoccurring timer instead of a mouse click
> (and ultimately I'd like to run the code outside a callback and simply
> render N different camera positions and get the visible points using those
> camera settings).
>
> Thanks,
> Thomas
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120608/e2ef81ea/attachment.htm>


More information about the vtkusers mailing list