Closed liyueying233 closed 7 months ago
Hi,
Apologies. Please change the projection
function in rpcad/camera.py
to the following:
def projection(fov_rad: float = np.radians(45.0), ar=1.0, near=1.0, far=50.0):
"""
From https://github.com/rgl-epfl/large-steps-pytorch by @bathal1 (Baptiste Nicolet)
Build a perspective projection matrix.
Parameters
----------
fov_x : float
Horizontal field of view (in degrees).
ar : float
Aspect ratio (w/h).
near : float
Depth of the near plane relative to the camera.
far : float
Depth of the far plane relative to the camera.
"""
tanhalffov = np.tan((fov_rad / 2))
max_y = tanhalffov * near
min_y = -max_y
max_x = max_y * ar
min_x = -max_x
z_sign = -1.0
proj_mat = np.array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]])
proj_mat[0, 0] = 2.0 * near / (max_x - min_x)
proj_mat[1, 1] = 2.0 * near / (max_y - min_y)
proj_mat[0, 2] = (max_x + min_x) / (max_x - min_x)
proj_mat[1, 2] = (max_y + min_y) / (max_y - min_y)
proj_mat[3, 2] = z_sign
proj_mat[2, 2] = z_sign * far / (far - near)
proj_mat[2, 3] = -(far * near) / (far - near)
return proj_mat
It was a mix of radians and degrees. I might have pulled out the wrong version of the code. I am looking to see further inaccuracies before I push the fixes.
Hi,
Apologies. Please change the
projection
function inrpcad/camera.py
to the following:def projection(fov_rad: float = np.radians(45.0), ar=1.0, near=1.0, far=50.0): """ From https://github.com/rgl-epfl/large-steps-pytorch by @bathal1 (Baptiste Nicolet) Build a perspective projection matrix. Parameters ---------- fov_x : float Horizontal field of view (in degrees). ar : float Aspect ratio (w/h). near : float Depth of the near plane relative to the camera. far : float Depth of the far plane relative to the camera. """ tanhalffov = np.tan((fov_rad / 2)) max_y = tanhalffov * near min_y = -max_y max_x = max_y * ar min_x = -max_x z_sign = -1.0 proj_mat = np.array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]) proj_mat[0, 0] = 2.0 * near / (max_x - min_x) proj_mat[1, 1] = 2.0 * near / (max_y - min_y) proj_mat[0, 2] = (max_x + min_x) / (max_x - min_x) proj_mat[1, 2] = (max_y + min_y) / (max_y - min_y) proj_mat[3, 2] = z_sign proj_mat[2, 2] = z_sign * far / (far - near) proj_mat[2, 3] = -(far * near) / (far - near) return proj_mat
It was a mix of radians and degrees. I might have pulled out the wrong version of the code. I am looking to see further inaccuracies before I push the fixes.
Sorry about forgeting to reply that the question is solved successfully. Thanks a lot for your help!
Hi!I met some difficulties about generating the rendered pictures from mesh, which have almost one kind of color.
I can not solve this problem so that my output is totally wrong. Could you please help me solving this problem?