You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When computing the distances of samples during rendering, some open sourced codes such as nerf_pl and mip-nerf multiplies the distances with the norms of direction. Seems like there's no such operation in this repo. (volume_op.py#L191) Could you give any hint on the difference?
The text was updated successfully, but these errors were encountered:
Good catch, we do not have this multiplication in our code.
If you print the output of torch.norm(ray_dir_world, dim=-1), you can see that the magnitudes of direction vectors are all very close to 2.0. So we omit this multiplication, which in this case is just multiplying a constant with the dists and has very little effect on training.
These magnitudes ~ 2.0 is the result of using NDC, so this omission is fine in forward-facing scenes.
If you switch off NDC by setting --use_ndc=False, you can see that the variation of the magnitudes of all direction vectors is slightly larger, i.e. from 1.0 to 1.3 or so, depending on the camera FOV. That being said, if you want to apply it to non-forward-facing scenes, you probably want to add this multiplication (dist = dist * norm) back. However, we do not observe a big difference with or without this multiplication even in non-forward-facing scenes.
Hi there, thanks for sharing the code!
When computing the distances of samples during rendering, some open sourced codes such as nerf_pl and mip-nerf multiplies the distances with the norms of direction. Seems like there's no such operation in this repo. (volume_op.py#L191) Could you give any hint on the difference?
The text was updated successfully, but these errors were encountered: