[vtkusers] Actors in front of camera clipped despite ResetCameraClippingRange()
ken.martin at kitware.com
Tue Jun 21 10:45:59 EDT 2016
That image doesn't match what I think you are saying, so maybe you can help
me understand. You mention the camera is positioned on a cylinder of
radius 3.0 and from your code it looks like the focal point is not changing.
If that is true then at some point some of the cones will be behind your
camera. For example if your focal point was (0,0,0) and your camera was at
(3,10,0) then you would be looking mostly down the y axis and from your
code you have a cone positioned at (0,20,0) which would be behind you.
Having said all that your image looks funny anyhow. With a parallel
projection all the cones should look the exact same aside from clipping but
the first cone really looks off from the rest and the others are all
identical so something is off.
I did look through that code and it looks reasonable to me (the patch
referenced is not correct BTW, parallel projection still requires proper z
buffer scaling and clipping) If you could provide a few more images from
different viewpoints, ideally with the resulting camera
for those images that would help me see what is going on.
On Tue, Jun 21, 2016 at 7:06 AM, Elvis Stansvik <
elvis.stansvik at orexplore.com> wrote:
> 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)
> 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.SetCenter(0, i, 0)
> coneMapper = vtkPolyDataMapper()
> coneActor = vtkActor()
> 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.
> Powered by www.kitware.com
> Visit other Kitware open-source projects at
> Please keep messages on-topic and check the VTK FAQ at:
> Search the list archives at: http://markmail.org/search/?q=vtkusers
> Follow this link to subscribe/unsubscribe:
Ken Martin PhD
Chairman & CFO
28 Corporate Drive
Clifton Park NY 12065
518 371 3971
This communication, including all attachments, contains confidential and
legally privileged information, and it is intended only for the use of the
addressee. Access to this email by anyone else is unauthorized. If you are
not the intended recipient, any disclosure, copying, distribution or any
action taken in reliance on it is prohibited and may be unlawful. If you
received this communication in error please notify us immediately and
destroy the original message. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vtkusers