[vtkusers] Actors in front of camera clipped despite ResetCameraClippingRange()

Elvis Stansvik elvis.stansvik at orexplore.com
Tue Jun 21 07:37:00 EDT 2016


2016-06-21 13:35 GMT+02:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:

> 2016-06-21 13:20 GMT+02:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:
>
>> I'm attaching the full code for brevity, but the relevant parts are how
>> I'm treating the camera in my CylindricalInteractionStyle class and the if
>> __name__ == '__main__' block.
>>
>
> To clarify: To see the problem, run the program and use Shift+mouse drag
> to move the camera up or down. If you go far enough the cones start to get
> clipped at the near plane.
>

Sorry: You may have to zoom out a bit with Ctrl+mouse drag to see the
problem (controls the parallel projection scale).

Elvis


>
> Elvis
>
>
>> Elvis
>>
>>
>> 2016-06-21 13:06 GMT+02:00 Elvis Stansvik <elvis.stansvik at orexplore.com>:
>>
>>> Hi all,
>>>
>>> I have a setup where the camera always moves on a cylinder of radius 3.0
>>> around my subject (just testing with a stack of cones at the moment). The
>>> focal point is always positioned along the Y axis, and the camera may be
>>> moved up and down independent of the focus point, but the camera is always
>>> at a distance of 3 from the Y axis.
>>>
>>> As soon as the user moves the camera, I reset the camera clipping range
>>> with ResetCameraClippingRange(). Despite this, when the camera and the
>>> focal point are far away from eachother, the actors (my stack of cones) get
>>> clipped by the near plane for some reason.
>>>
>>> See the attached screenshot which shows the clipping.
>>>
>>> What I'm doing to my camera (in response to Shift+mouse drag in my
>>> custom interactor) to end up in this situation is just:
>>>
>>>         camera = renderer.GetActiveCamera()
>>>         (x, y, z) = camera.GetPosition()
>>>         camera.SetPosition(x, y - self.PanningFactor * dy, z)
>>>         renderer.ResetCameraClippingRange()
>>>
>>> and I've verified that the camera is always at a distance of 3.0 from
>>> the Y axis.
>>>
>>> The cones I'm using in this test were created with:
>>>
>>>     for i in range(-10, 20):
>>>         coneSource = vtkConeSource()
>>>         coneSource.SetDirection(0, 1, 0)
>>>         coneSource.SetResolution(8)
>>>         coneSource.SetCenter(0, i, 0)
>>>
>>>         coneMapper = vtkPolyDataMapper()
>>>         coneMapper.SetInputConnection(coneSource.GetOutputPort())
>>>
>>>         coneActor = vtkActor()
>>>         coneActor.SetMapper(coneMapper)
>>>
>>>         widget.renderer.AddActor(coneActor)
>>>
>>> I don't understand why I see clipping occur here, since I'm using
>>> ResetCameraClippingRange, and nothing is behind the camera. The radius of
>>> these cones is the default (0.5).
>>>
>>> It's probably something stupid, but any advice is much appreciated.
>>>
>>> Elvis
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160621/7cfec862/attachment.html>


More information about the vtkusers mailing list