2016-12-28 11 views
1

내 게임은 평평한 표면 (건물 바닥)을 생성합니다.평면 폴리곤 메쉬의 UV 계산 방법

enter image description here

하기 Poligon가 절차 적으로 생성되고마다 다를 것이다 : 그것은 그림과 같이 평평한하기 Poligon 메쉬입니다.

예를 들어 벽돌로 만든 바닥의 표준 사각형 텍스처가 올바르게 표시되도록 UV 좌표를 매핑해야합니다.

각 정점에 올바른 UV 좌표를 지정하는 가장 좋은 방법은 무엇입니까?

답변

1

불규칙한 모양의 경우, 메쉬에 질감을 "붙여 넣기"(사각형 스티커를 메쉬에 붙이고 메쉬 외곽에있는 스티커를 잘라내는 것을 생각할 수 있습니다). 지도의 유형에 대해

, 당신은 당신이 질감을 통해 "붙여 넣기"하고자하는 영역은 당신의 mesh 의 로컬 좌표bounding box을 제공하는 Mesh.bounds을 사용할 수 있습니다.

Mesh mesh = GetComponent<MeshFilter>(); 
Bounds bounds = mesh.bounds; 

는 메쉬의 정점을 가져 오기 :

Vector3[] vertices = mesh.vertices; 

지금 매핑을 수행

Vector2[] uvs = new Vector2[vertices.Length]; 
for(int i = 0; i < vertices.Length; i++) 
{ 
    uvs[i] = new Vector2(vertices[i].x/bounds.size.x, vertices[i].z/bounds.size.z); 
} 
mesh.uv = uvs; 
+0

이 좋은 작품, 감사합니다! 나는 메쉬 주위에 경계 사각형을 찾아 내고 그 사각형에 정점 좌표를 매핑하려고했지만 어딘가에서 엉망이되었습니다. 주어진 경계를 사용하는 것이 훨씬 쉽습니다 :) – kace91