[vtkusers] How to preserve objects size when moving camera

Aron Helser aron.helser at kitware.com
Fri Dec 14 14:25:56 EST 2018


You could probably do what you want by drawing points using a custom shader
to create different shapes.
Something like this:
https://stackoverflow.com/questions/27098315/render-large-circular-points-in-modern-opengl
I'm not sure how to do this in VTK, however.

On Fri, Dec 14, 2018 at 12:08 PM Andrey Ivanov <andrei.ivanov at phystech.edu>
wrote:

> I forgot to mention that I am already working with orthogonal projection.
> The problem is not with preserving shapes and avoiding perspective
> deformations. I would like to fix screen size of objects, so when I
> increase height and width of camera frustum they will occupy the same
> number of pixels.
>
> Best regards,
> Andrey Ivanov
>
>
> On Fri, 14 Dec 2018 at 19:41, David E DeMarle <dave.demarle at kitware.com>
> wrote:
>
>> Will turning off perspective do what you want?
>>
>> https://www.vtk.org/doc/nightly/html/classvtkCamera.html#a5b0e647798e7f45d358d8039ff41b378
>> void vtkCamera::SetParallelProjection(vtkTypeBool
>> <https://www.vtk.org/doc/nightly/html/vtkABI_8h.html#a663dee2c85b2a185fb34cb877d5208da>
>>  flag)
>>
>> David E DeMarle
>> Kitware, Inc.
>> Principal Engineer
>> 21 Corporate Drive
>> Clifton Park, NY 12065-8662
>> Phone: 518-881-4909
>>
>>
>> On Fri, Dec 14, 2018 at 10:55 AM Andrey Ivanov <
>> andrei.ivanov at phystech.edu> wrote:
>>
>>> Hello!
>>>
>>> I am trying to draw a lot of objects with the same shape for CAD system.
>>> Let it be stars or circles for example.
>>> The number of such circles can be about 1000-10000.
>>> I would like to *preserve their size* when moving the camera, scaling
>>> frustrum and changing distance to objects.
>>>
>>> For now I found two approaches:
>>>
>>> 1. Use vtkDistanceToCamera
>>> An example from
>>> https://lorensen.github.io/VTKExamples/site/Cxx/Visualization/DistanceToCamera/
>>> is great
>>> for low number of objects, however when their numer grows, the interface
>>> starts to freeze due to
>>> rescaling of shapes on each interaction with camera.
>>>
>>> 2. Use points (squares with width equal to 4 pixels).
>>> It works fast and points size is fixed, but I would like to have more
>>> complex shapes, like triangles and circles.
>>>
>>>
>>> Is there another approach to solve this problem? It seems that with pure
>>> OpenGL this can be implemented rather efficiently,
>>> so I am looking for a way to do it in VTK.
>>>
>>> Best regards,
>>> Andrey Ivanov
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the VTK FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>
>>> Search the list archives at: http://markmail.org/search/?q=vtkusers
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> https://public.kitware.com/mailman/listinfo/vtkusers
>>>
>> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> https://public.kitware.com/mailman/listinfo/vtkusers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/vtkusers/attachments/20181214/39f5ac60/attachment.html>


More information about the vtkusers mailing list