메쉬는 점으로 이루어져 있고, 이 점들을 선, 그리고 삼각형인 폴리곤을 만들어 3D 형태로 렌더링 한다.
그냥 점 형태로 보여주고 싶을 경우 토폴로지 옵션을 변경하면 된다.
그 전에 메쉬를 구성하는 구성요소에 대해 알아보자.
1. vertices
- 메쉬를 구성하는 각 점들의 Vector3 좌표들의 모음
2. triangles
- vertices 를 이용하여 구성한 폴리곤
- vertices 의 인덱스 값을 가지고 있으며, 3개의 점이 하나의 삼각형을 이룬다.
즉, triangles[0], [1], [2] 가 1개의 삼각형이다.
- 삼각형을 이루는 점의 좌표를 알고 싶다면, 연속된 3개의 triangles 의 값을 vertices[] 의 인덱스로 활용하면 된다.
예 ) triangles[0], [1], [2] 가 각각 4,6,10 일 경우, vertices[4], [6], [10] 의 vector3 값이 좌표값이다.
3. 토폴로지
- 메쉬를 어떻게 구성할 것인지, 정확하게는 렌더링시 어떻게 표현할지 결정하는 옵션이다. 보통은 triangle인
폴리곤 구성을 이용하지만, 이 옵션값을 통해 vertices 만 점으로 표현할 수 있다.
4. Indices
- 메쉬는 종종 서브메쉬의 조합으로 구성되기도 한다. Indices 는 GetIndices 함수와 SetIndices 함수가 있다.
- GetIndices의 경우, 인자값으로 서브메쉬의 인덱스를 넣는다. (0 부터 시작) 결과값으로 해당 메쉬의
triangles 값을 준다 (vertices 의 인덱스)
- SetIndices 의 경우, 인자값으로 인덱스모음, 토폴리지 옵션, 서브메쉬 인덱스 를 받는다.
바로 여기에 토폴로지 옵션값을 넣기 때문에, 이를 이용하여 자신의 indices 값을 Get 하고, 옵션만 바꿔 다시
Set 하면 된다.
예제 코드)
Mesh변수.SetIndices(mesh변수.GetIndices(0),MeshTopology.Points,0);
각 vertice의 vector3 값을 조종하면, 다양한 효과를 낼 수 있다. 예를들어 두점으로 부터 방향성을 구한다음, 방향성 만큼 값을 곱한다면, 흩어지는 효과를 낼 수 있을것이다.
'Unity' 카테고리의 다른 글
WebGL 에서 VR 개발 (0) | 2023.12.14 |
---|---|
Mesh 를 통해 면적, 부피 계산하는 법 (0) | 2023.12.12 |
키보드 및 마우스를 통한 카메라 이동, 회전 (0) | 2023.11.09 |
UI 가 Terrain에 가려질 경우 해결법 (0) | 2023.11.07 |
머테리얼 파라미터 설명 (텍스쳐 관련) (1) | 2023.11.06 |