-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TensoRF bugfix: AABB normalized_positions to [-1, 1] #998
TensoRF bugfix: AABB normalized_positions to [-1, 1] #998
Conversation
Nice find. Does this change effect nerfacto / instant-ngp performance? |
51a98db
to
026bdd8
Compare
I think hashgrid expects [0,1]. |
Previously, SceneBox.get_normalized_positions() returned a value in 0,1. This was fine for InstantNGP and Nerfacto, which use these values directly in an MLP. For TensoRF though, this was an error because grid sample expects values in the range [-1,1]. Thus, I think only 1/4th of the encoding planes were actually being used, and half of the encoding lines were.
026bdd8
to
330195d
Compare
I've changed it to the TensoRF callsites, altho I browsed tcnn's readme, I didn't see a specific doc that referenced it anywhere but better to not cause random changes elsewhere. |
I just tested nerfacto with [-1,1] and it does work, but the results were worse. Lets just focus this PR on tensorf for now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM too. Nice find!
AABB normalized_positions to [-1, 1] Previously, SceneBox.get_normalized_positions() returned a value in 0,1. This was fine for InstantNGP and Nerfacto, which use these values directly in an MLP. For TensoRF though, this was an error because grid sample expects values in the range [-1,1]. Thus, I think only 1/4th of the encoding planes were actually being used, and half of the encoding lines were.
AABB normalized_positions to [-1, 1] Previously, SceneBox.get_normalized_positions() returned a value in 0,1. This was fine for InstantNGP and Nerfacto, which use these values directly in an MLP. For TensoRF though, this was an error because grid sample expects values in the range [-1,1]. Thus, I think only 1/4th of the encoding planes were actually being used, and half of the encoding lines were.
Previously, SceneBox.get_normalized_positions() returned a value in 0,1. This was fine for InstantNGP and Nerfacto, which use these values directly in an MLP. For TensoRF though, this was an error because grid sample expects values in the range
[-1,1]
. Thus, I think only 1/4th of the encoding planes were actually being used, and half of the encoding lines were.