"내일이 있다는 발상에 오늘이 희미해진다. 오늘 일은 오늘에 끝내라." – 김성근

2020/01/16

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

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

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

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

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 > ,

댓글 남기기

* 표시된 곳은 반드시 입력해주세요