3D 파일의 데이터들

J·2024년 3월 4일
0

ios 기준으로 설명합니다...

usdz 파일을 SCNScene에 불러오면 SCNnode의 형태로 들어가진다.
이 SCNnode 안에는 해당 3D 파일 정보를 저장해놓는 구조가 있다.

SCNGeometry

가장 상위 구조이다.
SCNGeometrys는 SCNGeometrySource와 SCNGeometryElement로 이루어진다.

SCNGeometrySource

SCNGeometrySource에는 3D 모델을 이루는 점들, 즉 Pointcloud 하나 하나에 대한 구체적인 정보가 담겨있다. 즉, 3D 모델의 정점 배열을 나타낸다.

Vertex

vertex에는 점의 위치값, 즉 (x,y,z) 값이 저장되어 있다.
float3로 저장되어 있다.

Normal

normal에는 각 점의 normal 벡터가 정보가 담겨 있다.

* normal vecter는 표면의 방향을 나타낸다. 여기서는 기하 모양에 대한 정점의 법선 벡터를 뜻한다. 즉, 해당 정점 주변의 표면 방향을 나타낸다.

Color

각 점의 rgba 색상 정보를 의미한다.

Texcoord

각 점이 매핑되어야 하는 텍스처 좌표(Texture coordinate)를 의미한다.

* 텍스처 좌표는 2D 이미지나 텍스처 맵의 특정 지점을 가리키는데, 일반적으로 (u, v) 형식으로, 2D 텍스처의 x 및 y 좌표를 나타낸다. 여기서는 SCNGeometryElement의 Indices의 벡터 배열 순서에 따라 해당되는 텍스쳐 좌표를 의미힌다.

SCNGeometryElement

SCNGeometryElement에는 3D 모델의 구성 요소를 나타냅니다. 3D 모델의 요소는 주로 정점(Vertex)의 인덱스로 구성되며, 이 모양의 기하학적 구성을 정의하는 데 사용된다.

SCNGeometrySource가 정점의 위치, 텍스처 좌표, 법선 벡터 등을 저장하는 데 사용된다면, SCNGeometryElement는 이러한 정점을 결합하여 3D 모델을 형성하는 데 사용된다.

Indices

3D 모델의 정점 인덱스를 나타내는 배열이다. 이 배열은 일반적으로 삼각형, 선 또는 점과 같은 기하 모양의 구성을 정의합니다.

3D 모델을 렌더링할 때, 각 도형의 정점은 정점 배열에서 해당 인덱스로 참조한다. 예를 들어, 삼각형의 경우 세 개의 정점을 가지므로, indices 배열에는 세 개의 인덱스가 포함된다. (실제로 대부분이 삼각형으로 랜더링 함) 이 인덱스들은 정점 배열에서의 각각의 위치를 나타낸다. 즉, 몇번 째 점인지를 의미한다.

profile
재이의 삽질일기, 근데 발전을 곁들인

0개의 댓글