Thank you for sharing your work.
The code runs well for preserving sharp features, as exampled by the fandisk and the sculpt model in the attached figures. However, we failed to find the double-trough function described in the paper. I seems the orignal Gauss curvature loss (7) is used in the following code:
`def gaussian_curvature(nonmnfld_hessian_term, morse_nonmnfld_grad):
device = morse_nonmnfld_grad.device
nonmnfld_hessian_term = torch.cat((nonmnfld_hessian_term, morse_nonmnfld_grad[:, :, :, None]), dim=-1)
zero_grad = torch.zeros(
(morse_nonmnfld_grad.shape[0], morse_nonmnfld_grad.shape[1], 1, 1),
device=device)
zero_grad = torch.cat((morse_nonmnfld_grad[:, :, None, :], zero_grad), dim=-1)
nonmnfld_hessian_term = torch.cat((nonmnfld_hessian_term, zero_grad), dim=-2)
morse_nonmnfld = (-1. / (morse_nonmnfld_grad.norm(dim=-1) * 2 + 1e-12)) torch.det(
nonmnfld_hessian_term)
Could you kindly tell us whether we made a mistake in locating the double-trough function? Or the result could be further improved if the double-trough function is added? Thank you.
Thank you for sharing your work. The code runs well for preserving sharp features, as exampled by the fandisk and the sculpt model in the attached figures. However, we failed to find the double-trough function described in the paper. I seems the orignal Gauss curvature loss (7) is used in the following code: `def gaussian_curvature(nonmnfld_hessian_term, morse_nonmnfld_grad): device = morse_nonmnfld_grad.device nonmnfld_hessian_term = torch.cat((nonmnfld_hessian_term, morse_nonmnfld_grad[:, :, :, None]), dim=-1) zero_grad = torch.zeros( (morse_nonmnfld_grad.shape[0], morse_nonmnfld_grad.shape[1], 1, 1), device=device) zero_grad = torch.cat((morse_nonmnfld_grad[:, :, None, :], zero_grad), dim=-1) nonmnfld_hessian_term = torch.cat((nonmnfld_hessian_term, zero_grad), dim=-2) morse_nonmnfld = (-1. / (morse_nonmnfld_grad.norm(dim=-1) * 2 + 1e-12)) torch.det( nonmnfld_hessian_term)
Could you kindly tell us whether we made a mistake in locating the double-trough function? Or the result could be further improved if the double-trough function is added? Thank you.