반응형
이전글에 stl과 obj 파일 기본정보에 대해 글을 작성 했었습니다.
2023.10.23 - [3D Algorithm] - stl, obj 3D 파일 포맷 기본 정보(3D File Format)
PLY 파일도 stl, obj와 같이 3d data를 저장하는 데이터 포맷입니다.
PLY는 크게 두 가지 Header와 Data로 나누어서 저장합니다.
* Header
- 헤더 시작은 ply, 헤더 끝은 end_header로 표시합니다.
- 헤더는 데이터 포맷이 바이너리든 아스키든 상관없이 아스키로 되어 있습니다.
- 아스키는 format ascii 1.0로 표시하고, 바이너리는 두 가지 format binary_little_endian 1.0, format binary_big_endian 1.0로 표시합니다.
- 점 개수는 element vertex ***, 면 개수는 element face ***로 표시합니다.
- 점 좌표는 x y z, 점 노말은 nx ny nz, 텍스쳐 좌표는 s t로 표시합니다.
* Data
- 점 정보 표현 순서는 점 좌표(x/y/z), 점 노말(nx/ny/nz), 텍스쳐 좌표(s/t) 순서로 표시합니다.
- 면 정보 표현 순서는 면의 점 개수, 점 인덱스 순서로 표시합니다.
예를 들어 면이 삼각형이고 점들의 index가 0 1 2 일 때 면 정보 표현은 3 0 1 2 입니다.
아래는 삼각형 두 개로 사각형을 표현하는 ply 아스키 파일입니다. 텍스쳐 정보는 없습니다.
ply
format ascii 1.0
element vertex 6
property float x
property float y
property float z
property float nx
property float ny
property float nz
element face 2
property list uchar uint vertex_index
end_header
10.000000 10.000000 0.000000 0.000000 0.000000 1.000000
0.000000 10.000000 0.000000 0.000000 0.000000 1.000000
0.000000 0.000000 0.000000 0.000000 0.000000 1.000000
10.000000 10.000000 0.000000 0.000000 0.000000 1.000000
0.000000 0.000000 0.000000 0.000000 0.000000 1.000000
10.000000 0.000000 0.000000 0.000000 0.000000 1.000000
3 0 1 2
3 3 4 5
반응형
'3D Algorithm' 카테고리의 다른 글
AABB(Axis Aligned Bounding Box) 계산과 활용 (0) | 2024.08.22 |
---|---|
임의의 점 직육면체 외부/내부 판별(Point Inside Cube) (0) | 2024.06.13 |
임의의 점 원기둥 내부/외부 판별 코드(c++) (0) | 2024.06.03 |
3차원 점 직선 투영(Point Line Projection) 방법2 (0) | 2024.05.17 |
CCW 정렬 알고리즘 (0) | 2024.04.23 |