“우리 대부분은 초라한 옷차림과 엉터리 가구들을 부끄럽게 여기지만, 초라한 생각과 엉터리 철학을 부끄럽게 여길 줄 알아야 한다.” – Albert Einstein

'유니티' 태그가 붙어있는 글 보기

20200116
일정 이상으로 폴리곤 생성 시 문제가 발생할 때

메시 관련 테스트 중 이상한 결과를 발견하고 정점, 삼각형 배열에 들어간 값을 확인해 보았으나 이상은 없는데 결과는 깨져서 나와, 나는 뭘 잘못했을까 하다가 특정 수를 넘어가면 결과가 이상해지는 것을 발견하고 내용을 검색해보니 인덱스 포맷 때문이였네요.

아주 많은 폴리곤의 메시를 생성하는 경우, 오류 메시지가 뜨거나 폴리곤이 일정 수 이상으로 생성이 되지 않거나 생성은 되나 정점이나 삼각형 인덱스가 이상하게 들어가는 것처럼 보이는 경우가 생기는데, 인덱스 포맷 범위를 넘어 인덱스를 사용했기 때문입니다.

mesh.indexFormat은 기본 IndexFormat.UInt16으로 되어 있어 정점이나 삼각형 인덱스가 65535를 넘는 경우에 앞서 말한 오류들이 발생합니다. 다음과 같이 포맷을 바꿔서 문제를 해결 할 수 있습니다.

mesh.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32

참고

https://docs.unity3d.com/ScriptReference/Mesh-indexFormat.html
https://stackoverflow.com/questions/50433894/how-to-use-meshes-with-more-than-64k-vertices-in-unity-2018-1?noredirect=1&lq=1

댓글 남기기 | cat > 타닥타닥 | tag >

예전 글