-
Notifications
You must be signed in to change notification settings - Fork 449
Open
Description
def Compute_norm(self, face_shape):
face_id = self.tri.long()
point_id = self.point_buf.long()
shape = face_shape
v1 = shape[:, face_id[:, 0], :]
v2 = shape[:, face_id[:, 1], :]
v3 = shape[:, face_id[:, 2], :]
e1 = v1 - v2
e2 = v2 - v3
face_norm = e1.cross(e2)
empty = torch.zeros((face_norm.size(0), 1, 3),
dtype=face_norm.dtype, device=face_norm.device)
face_norm = torch.cat((face_norm, empty), 1)
v_norm = face_norm[:, point_id, :].sum(2)
v_norm = v_norm / v_norm.norm(dim=2).unsqueeze(2)
return v_norm
为什么不把empty cat在前边,这样point_buf里的index也不用-1了,而且这样用0补齐(N,8)就可以了,也不会有让人难以理解的以面的个数作为占位数字补齐
Metadata
Metadata
Assignees
Labels
No labels