실리의 프로그램 사이트

Unity Mesh에 대한 이해. 본문

Unity 강좌

Unity Mesh에 대한 이해.

sillyknight 2016. 12. 6. 14:57

Unity에서의 Mesh에 대한 이론을 조금 이야기 해보자 합니다.


일단 Unity Mesh에 대해서 유니티 레퍼런스에서 가져 왔습니다..




출처 : https://docs.unity3d.com/kr/current/ScriptReference/Mesh-vertices.html


Mesh.vertices

public Vector3[] vertices;

Description

정점(vertext) 위치의 복사본을 반환하거나 새로운 정점 위치 배열을 할당합니다.

메쉬에서 정점의 수는 정점 배열을 할당해서 변경됩니다. 정점 배열의 크기를 변경하는 경우에, 모든 다른 정점 속성(노멀, 색상, 접선, UV)도 자동으로 크기가 변경된다는 점을 주의하십시오. 정점을 설정할 때 메쉬에 정점 정보가 할당되지 않을 경우에, RecalculateBounds가 자동으로 invoke됩니다.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Update() { Mesh mesh = GetComponent<MeshFilter>().mesh; Vector3[] vertices = mesh.vertices; int i = 0; while (i < vertices.Length) { vertices[i] += Vector3.up * Time.deltaTime; i++; } mesh.vertices = vertices; mesh.RecalculateBounds(); } }


mesh에 대해서 찾아보면 위와 같은 레퍼런스를 보게 됩니다. 


하지만 보고 나면 저게 머지 하는 분들이 있을 듯 합니다.


Mesh란 다면체 모양의 집합입니다. 아래 그림을 보시죠.



출처 : https://en.wikipedia.org/wiki/Polygon_mesh




저기 최종 다면체가 mesh라고 보시면 됩니다.


자 그러면 mesh를 어떻게 그릴 것인가하는 부분입니다.


그러면 Unity에서는 mesh를 어떻게 그려야 할까요?


자 이부분에서 의문이 살짝 듭니다. 


여기서 유니티 레퍼런스에서 가져온 부분이 사용됩니다.



mesh.vertices = vertices;

vertices라는 것에 점을 만들고 점을 찍는겁니다.


자 그러면 점을 찍었으니 선을 이어야 합니다.


Unity에서는 triangle로 삼각형을 그릴 수 있게 해줍니다.



mesh.triangles = triangles;

자 위와같은 방식으로 하면 삼각형이 그려집니다.


그러면 저 삼각형을 여러개 이어 나간다면 한개의 mesh가 탄생하게 됩니다.





Comments