<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Another option to consider is the infinite perspective projection:</div><div> </div><div><a href="https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#infinite-perspective-projection">https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#infinite-perspective-projection</a><br></div><div><br></div><div>AFAIK it favors precision at large distances at the expense of precision at zNear distances. Here is a discussion:</div><div><br></div><div><a href="https://github.com/mrdoob/three.js/issues/11755">https://github.com/mrdoob/three.js/issues/11755</a><br></div><div><br></div><div>Infinite perspective could become a boolean field for Viewpoint: infinite='true'</div><div><br></div><div>-Andreas</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Message: 2<br>
Date: Fri, 16 Feb 2018 13:13:05 -0800<br>
From: Andrey Filippov <<a href="mailto:andrey@elphel.com">andrey@elphel.com</a>><br>
To: GPU Group <<a href="mailto:gpugroup@gmail.com">gpugroup@gmail.com</a>><br>
Cc: "X3D Graphics public mailing list" <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>><br>
Subject: Re: [x3d-public] ideal points in IndexedFaceSet<br>
Message-ID: <<a href="mailto:161a076a591.d7ceb8a145606.5200096282464602015@elphel.com">161a076a591.d7ceb8a145606.<wbr>5200096282464602015@elphel.com</a><wbr>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Doug,<br>
<br>
Yes, I meant w=0. I thought that switching to MFVec4f would be too big of a change, and the only value of interest may cause div by zero. This is why I thought about a boolean finite/ideal. In my everyday job I'm rather far from CG, so maybe it is not easy to implement with existing shaders. Or maybe there are other equivalent solutions to handle faces with points at infinity. But at the first glance it could be a more elegant way than the Background node.<br>
<br>
In our particular application I needed non-uniform grid at infinity. We use frequency-domain processing for image aberration correction and stereo matching, and it is only shift-invariant, not scale-invariant. So using that we are camera manufacturers we pre-select lenses to have the same focal length (to ~1%), then individual lenses/sensors are mechanically adjusted to have the same optical axes and roll. Then we find common radial distortion approximation common for all 4 images, and only correct (in frequency domain) residual distortion. As a result the generated textures have (known) radial distortion that I take into account by correcting the 3d coordinates when generating x3d models IndexedFaceSet. For Background node I would need to apply full rectification to the image. When using 10,000 m flat "wall" I make it as a non-uniform grid, the same would be true if the fancy IndexedFaceSet was available.<br>
<br>
Andrey<br><br></blockquote></div>
</div></div>