반응형
open3d는 다음과 같은 method가 주어져서 cube를 만드는게 뚝딱이다.
cube = o3d.geometry.TriangleMesh.create_box()
아쉽게도 pytorch3d에는 이게 없어서 직접 cube의 8개 vertex와 face를 지정해준 뒤 직접 만들어야 하는데, 이게 매번 할 때마다 엄청 귀찮다.
정육면체니까 6개 face만 만들면 될 것 같지만 triangle face기 때문에 12개의 face를 만들어야 하고, 구성하는 vertex indexing 순서에 따라 normal이 뒤집힐 수도 있기 때문에 렌더링까지 잘되게 하려면 face 방향도 매번 신경써야 한다. 엄청 귀찮다...
반복 노동을 줄이기 위해 복사 붙여넣기 용으로 기록해둔다.
from pytorch3d.structures import Meshes
from pytorch3d.renderer import TexturesVertex
vertices = 0.5 *torch.tensor([[[1, 1, 1], [1, 1, -1], [1, -1, 1], [1, -1, -1],
[-1, 1, 1], [-1, 1, -1], [-1, -1, 1], [-1, -1, -1]]], dtype=torch.float32).reshape(-1, 3).cuda()
faces = torch.tensor([[[0, 1, 2], [1, 2, 3], [0, 4, 6], [0, 2, 6],
[0, 4, 1], [4, 1, 5], [2, 3, 6], [6, 7, 3],
[5, 4, 6], [6, 7, 5], [5, 7, 1], [3, 7, 1]]], dtype=torch.int64).reshape(-1, 3).cuda()
textures = TexturesVertex(vertices[None])
cube = Meshes([vertices], [faces], textures)
반응형
'Knowhow > Vision' 카테고리의 다른 글
obj 파일 v, vt, f 등 직접 저장하기, obj save (0) | 2024.08.28 |
---|---|
Facescape 모델 displacement map 사용법, detailed mesh 얻어내는 방법 (0) | 2024.08.28 |
BFM face model 파라미터로 변형하기 (cropped BFM 2009 버전 예시) (0) | 2024.07.30 |
Open3d mesh uv coordinate (0) | 2024.07.30 |
FLAME head model, chumpy dependency 없는 파일 만들기 (0) | 2024.07.24 |