Burst 가속
UModelerX 는 무거운 편집 루틴을 Burst 로 컴파일된 병렬 잡으로 처리합니다. 현재 가속되는 범위, 켜는 방법, 거북이 아이콘의 의미를 정리합니다.
1.4.0 부터 UModelerX 는 무거운 편집 루틴을 단일 스레드 관리 코드 대신 Unity 의 Burst 컴파일러로 컴파일된 병렬 잡으로 처리할 수 있습니다.
목표는 그동안 버벅이던 상황의 반응 속도입니다 — 많은 요소를 선택해 드래그할 때, 조밀한 모델에서 사각 선택을 할 때, 아이솔레이트를 걸 때, 편집 가능한 메시가 가득한 씬을 열 때입니다.
필요 조건
가속에는 Unity 패키지 두 개가 필요합니다.
| 패키지 | Id |
|---|---|
| Burst | com.unity.burst |
| Mathematics | com.unity.mathematics |
둘 중 하나라도 없으면 씬 뷰 툴바에 거북이 아이콘이 나타납니다. 클릭하면 무엇이 문제인지 안내하고, 그 자리에서 패키지를 설치할 수 있습니다.
켜고 끄기
Edit > Preferences > UModeler X > Performance > Burst Acceleration 에서 설정합니다. 기본값은 켜짐입니다.
이 옵션을 바꾸면 스크립트가 다시 로드됩니다. 가속 훅이 도메인 리로드 시점에 등록되므로 리로드가 끝나야 전환이 반영됩니다. 끄더라도 Burst 파일은 컴파일된 채 남고 훅만 걸리지 않아, 모든 루틴이 기존 관리 경로로 돌아갑니다.
Performance 의 나머지 옵션은 Preference 를 참고하세요.
현재 가속되는 범위
가속 범위는 엘레멘트 편집의 핫 패스에 의도적으로 집중되어 있습니다 — 버텍스 · 엣지 · 페이스 · 루프마다 한 번씩 도는, 요소 개수가 곧 프레임 시간이 되는 구간입니다.
엘레멘트 편집
- 엘레멘트 이동 · 회전 · 스케일 — 버텍스 좌표 변환 패스가 병렬 잡으로 처리되고, 정점 인접 페이스를 훑고 페이스 루프를 모으는 준비 패스도 잡으로 돕니다.
- Preserve UV — 좌표가 움직일 때 UV 를 보정하는 계산입니다.
- 스냅 — 버텍스 · 엣지 중심 · 페이스 중심 후보 수집과 화면 좌표 투영입니다.
- 스컬프트 브러시 — Move · Pinch · Flatten · Standard · Smooth 와 이들이 쓰는 정점 노말 재계산, 그리고 스트로크 전 근방 백업입니다.
- 배치 페이스 생성 — 레이디얼 · 디스크 사이클 링킹입니다.
표시와 피킹
- 오버레이 빌드 — 버텍스 · 엣지 · 페이스 및 UV 오버레이입니다. 오버레이를 GPU 버퍼에 직접 쓰고, 좌표가 바뀐 블록만 다시 올립니다(버퍼 전체를 다시 올리지 않습니다).
- 피킹 — GPU ID 렌더링에서 CPU BVH 로 바뀌었습니다. 버텍스 · 엣지 · 페이스의 호버와 클릭, 사각 선택과 캡슐 선택이 여기에 해당합니다.
- UV 에디터 피킹 — 전체 페이스를 순회하는 대신 균일 그리드를 씁니다.
- 선택 계산 — 아이솔레이트 그룹, UV 아일랜드, 기즈모가 쓰는 선택 중심과 바운딩 박스입니다.
로딩과 빌드
- 메시 에셋 역직렬화 — 버텍스 · 엣지 · 루프 · 페이스 · UV 풀과 버텍스 컬러입니다.
- 로드마다 도는 구조 검증입니다.
- 메시 캐시와 렌더러블 메시 빌드, 노말 · 탄젠트 계산, 대용량 버퍼 복사입니다.
어디서 체감되나
빨라지는 이유는 세 가지입니다.
- 병렬화 — 한 스레드에서 돌던 요소별 루프가 CPU 코어 수만큼 나뉩니다.
- 네이티브 코드 — Burst 가 잡을 SIMD 기계어로 컴파일하며, 요소마다 관리 할당이 생기지 않으니 뒤따르는 가비지 컬렉션 부담도 없습니다.
- 업로드 감소 — 오버레이가 버퍼 전체를 다시 만들어 올리는 대신 바뀐 블록만 GPU 로 보냅니다.
세 가지 모두 요소 개수에 비례하므로 이득도 그렇습니다. 가벼운 메시에서는 애초에 관리 경로가 병목이 아니었기 때문에 차이를 느끼기 어렵습니다. 메시가 무거울수록, 한 작업이 건드리는 요소가 많을수록 격차가 벌어지며, 가장 크게 좋아지는 작업은 그동안 끊기던 바로 그 작업들입니다 — 많은 요소를 선택해 드래그하기, 조밀한 모델에서 사각 선택하기, 아이솔레이트, 편집 가능한 메시가 많은 씬 열기입니다.
아직 가속되지 않는 범위
다음은 아직 관리 경로로 동작합니다.
- 모디파이어
- 파라메트릭 쉐이프 재빌드
- UV 언랩
- 페인팅 (2D · 3D)
- 불리언 등 Multiple Objects 작업
- 임포트 · 익스포트
범위는 릴리즈를 거치며 넓혀갑니다. 각 루틴은 관리 구현을 그대로 남겨 두는 독립된 이음매를 통해 옮겨지므로, 새로 가속된 루틴도 이전과 같은 결과를 냅니다 — 동작을 바꾸지 않고 목록만 늘려갈 수 있는 이유입니다.
거북이 아이콘이 떴을 때
이 아이콘은 가속이 동작하지 않는 동안에만 표시됩니다. 클릭하면 원인과 해결 방법을 안내하는 다이얼로그가 열립니다.
| 원인 | 의미 | 해결 |
|---|---|---|
| 패키지 미설치 | Burst 또는 Mathematics 가 없음 | 다이얼로그에서 설치 |
| 가속 미로드 | 패키지는 있으나 스크립팅 디파인이 설정되지 않음 | 다이얼로그에서 활성화 — 디파인을 추가하고 스크립트를 다시 로드합니다 |
| 환경설정에서 꺼짐 | 사용자가 직접 끈 상태 | Preferences > UModeler X > Performance > Burst Acceleration |
| Unity Burst 컴파일 꺼짐 | Unity 자체의 Burst 컴파일이 비활성 | Jobs > Burst > Enable Compilation |
| 내부 레이아웃 불일치 | 설정 문제가 아닌 결함 — 안전을 위해 가속이 스스로 꺼짐 | 콘솔에서 시작 시 기록된 오류를 확인 |
모든 다이얼로그에는 Turn Off Burst Acceleration 선택지도 있습니다. 이걸 고르면 경고가 더 이상 뜨지 않고 관리 경로로 계속 작업합니다. 아무것도 설치하고 싶지 않다면 이 선택이 맞습니다.
관련 문서 — Preference · 툴바 · 트러블슈팅
