Bug #528

camera render in scene if pos is 0,0,0

Added by Guillaume Walck about 5 years ago.

Status:NewStart date:2017-11-09
Priority:LowDue date:
Assignee:-% Done:


Target version:-


If the camera extrinsic is identity (pos is 0,0,0), rendering in the scene creates errors

[/media/local/jenkins/jobs/icl-nivision-trunk-ci-deploy-lsp-famula-nightly/workspace/ICLGeom/src/ICLGeom/Scene.cpp:prepareForRendering,line: 149] WARNING: error visualizsing camera: no intersection -> plane normal is perdendicular to view-ray direction

Looking deeper, here is maybe the explanation :

When creating the vertices of the pyramid/frustrum of the camera, the 4 base corners are defined as the intersection of the image plane with the "viewRays" of the 4 image corner ( 0,0 / 0,479 / 639,479 / 639,0). However, this view rays never intersec the plane if they are in the plane which happens when position of the camera is zero.
See Scene.cpp:142 and Scene.cpp:145 as well as Camera.cpp:720 and Camera.cpp:770

there might me more to this issue, for instance why can the camera center and the image plane be at the same place, there should be focal length in between at all time. This comes maybe from the depth image model which considers the plane to be at zero Z in order to mesure depth from there.... then maybe the position of the camera center should always substract the focal length...

Also available in: Atom PDF