[x3d-public] ideal points in IndexedFaceSet
andrey at elphel.com
Tue Feb 20 09:35:03 PST 2018
I started with the Background node (and our current code exports both - https://git.elphel.com/Elphel/imagej-elphel/blob/dct/src/main/java/X3dOutput.java#L97), and I did not like it - it is very different from the other geometry nodes, it is a "special case":
1 - all 6 images are required
2 - each image has to be square with the size matching face of a cube (had to pad actual images)
3 - not easy to export to other representations (Blender, Wavefront, ) that have it differently or do not have corresponding nodes
4 - in our case we needed to apply additional stretching to compensate average radial distortion of the lenses, similarly how we did it with the finite faces
On the other hand allowing infinite points can be a uniform way to specify geometry and leave the rendering to the implementation and export (use infinite projection matrix or convert such points to very far, but finite). And while we needed just faces with all vertices at infinity, there are other cases where a face can have both finite and infinite vertices (road or sea/lake surface going to the horizon). Such modification is much more flexible and uniform, does not require Background node at all. And infinite points are very natural in the multi-view stereo where disparity is reverse-proportional to the distance. The same actual world object can change from infinite to finite when the vehicle moves closer to it, so it is beneficial to treat them in a uniform way. There could be other clues to determine the distance to the (yet) unresolved by disparity - e.g. recognizing the shape by ML (building, bridge, ...) and then getting the distance from known linear size and measured angular .
---- On Tue, 20 Feb 2018 08:47:56 -0800 Leonard Daly <Leonard.Daly at realism.com> wrote ----
As I understand your need, you want to put something in essentially the backdrop of the scene. This needs to be far enough away that it will never have parallax and the user cannot zoom in to anything that might be displayed. This would normally be down with the X3D node "Background", but that requires six total images, when all that is visible is one ("Front") and part of another two ("Up" and "Down"). In the case of really wide-angle lenses, there might be portions of "Left" and "Right" that show up too.
Would it be possible to construct template images that is lens-dependent that marks out the visible areas and those portions of the scene that are too far away (10km in your description) just be painted into the background image. The "Back" image can always be a transparent PNG as would the regions of the other background images that are outside of the lens' field-of-view.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the x3d-public