Hi there, up to the last version it was possible to have a custom aperture setting for both vertical and horizontal.
Currently, given an horizontal aperture, the vertical is set based on the image size/ratio.
How can I revert back to the old behavior?
Regards
Elia
Hi @eliabntt94 - Can you please share some screenshots/code to explain this issue further?
Nevermind, I see what issue you are talking about it. I see your comment in the other post.
Hi, i don’t have any right now (out of office until next Wednesday). You can easily verify by taking a camera, creating two viewports, and setting one as 16:9 and one as 4:3. The image should be the same (retaining the original h and v fog). Instead the images are different.
I digged through the code and noticed that in the new version the default and only option is normalizing through the horizontal aperture. The vertical aperture is then computed based on the AR. It would be nice if one can stretch the image how they want given the desired v and h fov.
Hi @rthaker
I also noticed related to this that there are the visualization scripts and the ground truth saving data which assume the same approach.
so in the camera parameters computation saved by the synthetic data helper there’s no vfov field and the viewport_projection_matrix does not reflect the updated camera matrix (this, in older Isaac versions in which I had the possibility of setting a custom vfov)
a workaround, if one knows the vfov, is the following
c_pose = cam_info["pose"]
c_view = cam_info["view_projection_matrix"]
c_mat = np.dot(c_pose, c_view)
vfov = 2 * math.atan(vertical_aperture / (2 * cam_info["focal_length"]))
c_mat[1,1] = 1 / math.tan(vfov / 2)
c_view = np.dot(np.linalg.inv(c_pose), c_mat)
with cam_info
that is the npy file saved by the synthetic data helper.
I quickly solved both here [to save the fov] and here [to correctly project stuff such as the 3d bboxes]