Local water tool rain column fails to render when fixProjectorView=true

Home Forums AR Sandbox Forum Local water tool rain column fails to render when fixProjectorView=true

This topic contains 2 replies, has 2 voices, and was last updated by  tuchwando 7 months, 4 weeks ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #116012

    tuchwando
    Participant

    Hi Oliver,

    My setup involves a joystick to control the local water tool. I found that the rain column doesn’t render when I try to run the program with calibration; specifically, projector.dat exists in the /etc/SARndbox-2.5 folder, and -fpv used as program argument. In fact, the same thing occurs for any VRUI glyph representing virtual input devices, such as the SixAxisTransform tool, or a virtual 2-button device created dynamically. These also fail to render in the -fpv mode.

    My thought is that this has something to do with the fact that the projectorTransform matrix, which is used instead of the default Vrui::DisplayState one, is stored in the RenderSettings object and is not used by the LocalWaterTool and VRUI objects. The sand surface and the rain cylinder/glyphs are no longer rendered in the same space. I can see how to make LocalWaterTool aware of this matrix (via the application object, in the method “LocalWaterTool::glRenderActionTransparent”) but I have to say my knowledge of 3D rendering theory is not good enough to understand how to use it correctly (or whether I’m really on the right track at all!).

    Any advice on how you might tackle this issue?

    Thanks in advance,

    Patrick

    #116018

    Oliver Kreylos
    Keymaster

    That is correct; the projector calibration matrix overrides Vrui’s navigation and viewing transformation in -fpv mode. As the calibration matrix is an arbitrary projective transformation, to support all possible alignments between projector and camera including keystone distortion, it can not be fully recreated by Vrui’s transformations, which are uniformly scaled rigid body transformations. The best option is to align those two transformations as closely as possible, in which case interaction with UI components such as virtual input devices will work quite well.

    Start SARndbox without -fpv, and use the normal mouse navigation tool to align the 3D model as best as you can with the 3D sand surface by rotating, panning, and scaling. Then save the current viewpoint (Vrui system menu, view, save view), and afterwards start SARndbox with -fpv -loadView <viewpoint file name> That will load the manually-aligned view, and now Vrui objects including virtual input devices will be rendered almost in the correct places.

    #116021

    tuchwando
    Participant

    OK, great. That’s exactly what I was looking for. It’s perhaps not as easy to do as using your calibration program, but I can see how it will work.

    Thanks!

    Patrick

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.

Comments are closed.