유니티 메시 데이터(Mesh data) - Mesh, vertices, topology, indices
Mesh
메시(Mesh)는 3D 공간에서 위치 콜렉션을 의미하는 vertices, 표면의 각 면을 정의하는 구조 유형인 topology, 표면을 생성하기위해 정점들이 결합하는 방법을 설명하는 정수 콜렉션인 Indices으로 정의됩니다. vertices(정점)은 위치(position) 속성 외에도 선택적 추가 정점 속성(vertex attributes - normal, tangent, texture coordinates, color)을 포함할수있으며 변형 가능한 메시(deformable meshes)에는 Blend shapes, Bind poses 속성이 포함될수있습니다.
vertices
정점 속성(vertex attributes)
정점 데이터(vertex data)의 요소를 정점 속성(vertex attributes)이라고 합니다
메시를 구성하는 모든 정점(vertex)은 정점의 위치를 나타내는 position(정점 위치, vertices) 외에도 다음과 같은 속성들을 포함할수있습니다.
노말(normal), 탄젠트(tangent), 텍스처 좌표(texture coordinates), 색상(color), Blend indices, 본가중치(bone weights)
모든 정점 데이터는 동일한 크기의 개별 배열에 저장됩니다. 예를들어 메시가 10개의 정점으로 구성되어있고 노말, 색상, 두 개의 텍스처 좌표를 포함한다면 각각 크기가 10인 정점위치, 노말, 색상, uv0, uv1 배열이 있어야합니다.
정점위치(vertices) 이외의 정점 데이터는 선택 사항이며 제거할수있습니다(optional, can be removed)
텍스처 좌표는 최대 8개 가질수있고 일반적으로 2D데이터(Vector2)이지만 경우에 따라서 Vector3, Vector4도 가능합니다. 스키닝된 메시(skinned mesh)의 경우 본 가중치(bone weights)를 포함합니다.
Topology
메시의 토폴로지(topology)는 메시의 구성을 나타내는 방식입니다. 일반적으로 메시는 삼각형으로 구성되며 삼각형은 3개의 정점으로 구성됩니다. 토폴로지는 인덱스 버퍼(indices)를 사용하여 정점 위치가 면(삼각형)으로 결합되는 방식을 설명합니다. 유니티는 다음 메시 토폴로지를 지원합니다.
(Triangle, Quad, Lines, LineStrip, Points)
indices
유니티는 인덱스(indices)를 사용하여 정점을 연결하여 면을 구성합니다. indices는 정점 인덱스 버퍼를 나타내는 배열로 각 삼각형을 구성하는 정점의 인덱스를 순서대로 기록하여 메시의 토폴로지를 정의합니다. 배열은 정수 형식의 값들로 구성되며 일반적으로 16비트 정수 또는 32비트 정수로 표현됩니다. 각 값은 정점 배열에서 해당 정점의 인덱스를 나타냅니다. Mesh 클래스에서 인덱스를 가져오고 설정하는 함수를 제공합니다(Mesh.GetIndices, Mesh.SetIndices)
Face-vertex meshes
https://en.wikipedia.org/wiki/Polygon_mesh
https://docs.unity.cn/2023.1/Documentation/ScriptReference/Mesh.html
https://docs.unity.cn/2023.1/Documentation/Manual/AnatomyofaMesh.html
https://docs.unity3d.com/ScriptReference/Mesh-vertices.html
'유니티게임개발 > 기초공부' 카테고리의 다른 글
유니티에서 삼각형 메시 생성 테스트(mesh, triangles) (0) | 2023.06.14 |
---|---|
유니티에 가져오기한 3D 모델의 메시 정점 개수 차이 (0) | 2023.06.14 |
유니티에서 SDF(Signed Distance Fields)를 사용한 비주얼이펙트(VFX) (0) | 2023.06.13 |
유니티(Unity)에서 메시를 구성하는 정점들이 삼각형을 표현하는 방법(Mesh.vertices, Mesh.triangles) (0) | 2023.06.12 |
유니티(unity) 비주얼이펙트 그래프(VFX graph)에서 SDF 사용하기 (0) | 2023.06.01 |