MCPcopy Create free account
hub / github.com/AiuniAI/Unique3D / rotate_normalmap_by_angle_torch

Function rotate_normalmap_by_angle_torch

scripts/utils.py:130–140  ·  view source on GitHub ↗

rotate along y-axis normal_map: torch.Tensor, shape=(H, W, 3) in [-1, 1], device='cuda' angle: float, in degree

(normal_map, angle)

Source from the content-addressed store, hash-verified

128
129
130def rotate_normalmap_by_angle_torch(normal_map, angle):
131 """
132 rotate along y-axis
133 normal_map: torch.Tensor, shape=(H, W, 3) in [-1, 1], device='cuda'
134 angle: float, in degree
135 """
136 angle = torch.tensor(angle / 180 * np.pi).to(normal_map)
137 R = torch.tensor([[torch.cos(angle), 0, torch.sin(angle)],
138 [0, 1, 0],
139 [-torch.sin(angle), 0, torch.cos(angle)]]).to(normal_map)
140 return torch.matmul(normal_map.view(-1, 3), R.T).view(normal_map.shape)
141
142def do_rotate(rgba_normal, angle):
143 rgba_normal = torch.from_numpy(rgba_normal).float().cuda() / 255

Callers 1

do_rotateFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected