로컬에서 배우는 AI 무엇을 고쳤나 말고, 어떻게 틀린 줄 알았나를 적는다

· No.22

지표는 0인데 눈에는 보였다 — 메쉬 수렴을 개수가 아니라 위치로 재기까지

사람 형태를 절차적으로 만드는 학습에서, 정점이 한 점으로 몰리는 문제가 눈에 계속 보였다. 그런데 그것을 재려고 만든 지표는 0을 냈다. 지표가 세는 것과 눈에 보이는 것이 달랐기 때문이다. 재는 축을 개수에서 위치로 옮기자 지표가 그대로 작업 지시서가 됐고, 네 군데의 원인이 전부 달랐다.

3D 아트본부(레이)

캐릭터 메쉬를 절차적으로 만드는 학습을 여러 판째 돌리고 있다. 판마다 사각면 비율과 잔차와 극점 개수를 재고, 렌더를 뽑아 눈으로 본다.

여러 판 동안 같은 신고가 반복됐다. 정점이 한 점으로 몰려 뭉치는 자리가 보인다. 정수리, 머리 옆, 가슴 가운데, 손끝, 발가락 사이.

그런데 그걸 재려고 만든 지표는 0을 냈다. 직전 판에서도 0이었다.

지표가 세는 것과 눈에 보이는 것이 달랐다

우리 지표는 「한 정점에 면이 몇 개 붙어 있는가」를 셌다. 기준을 넘는 정점이 있으면 잡는다. 그 관점에서 이 메쉬는 깨끗했다. 사각면 100%, 삼각형 0, 극점은 전부 예측된 합류부에 있었다.

뭉침은 정점 하나의 성질이 아니었다. 정점 각각은 정상적인 면 개수를 갖고 있는데, 그 정점들이 공간적으로 너무 가까이 있었다. 개수로 재면 안 보이고 거리로 재면 보인다.

그래서 지표를 다시 만들었다. 네 종류다.

  • 한 정점에 붙은 면 개수(기존 것도 남겼다)
  • 아주 짧은 엣지
  • 가늘고 긴 삼각형 모양의 사각면
  • 접힌 엣지 — 인접한 두 면이 서로 겹치는 방향으로 꺾인 곳

그리고 각 항목을 좌표와 부위 이름으로 목록화했다. 여기가 핵심이었다. 「슬리버 299개」는 판정이지만 「이 좌표에 슬리버, 부위는 목」은 작업 지시다. 새 지표는 그대로 할 일 목록이 됐다.

네 자리의 원인이 전부 달랐다

목록을 부위별로 보니 원인이 하나가 아니었다.

머리 능선과 가슴 가운데의 크레이터 — 몸통을 이루는 링을 쌓아 올릴 때 중심축이 조금씩 흔들리고 있었다. 축이 흔들리면 링이 놓이는 평면이 기울고, 기울면 인접한 링과 겹친다. 실측한 행 간격이 0.003 이었다. 원인이 링 자체가 아니라 링을 놓는 축에 있었다.

정수리 — 위쪽을 지퍼처럼 닫는 방식이라 한 점으로 모일 수밖에 없는 구조였다. 격자 형태의 마개로 바꿨다.

손끝의 뭉침 — 원인이 셋 겹쳐 있었다. 여유분을 접는 처리, 말단 링의 교차, 그리고 이음부 오목한 모서리의 조임. 하나씩 떼어 내며 확인했다.

발가락 골이 안 보이는 것 — 이건 뭉침의 반대였다. 골의 폭이 샘플링 간격보다 좁아서 골 전체가 균일하게 뒤로 밀렸다. 파인 곳이 만들어졌다가 사라진 게 아니라, 애초에 표본에 안 걸렸다. 같은 「안 보인다」인데 원인이 정반대다.

결과

  • 가늘고 긴 면: 299 → 76 (최악값 77.7 → 16.1)
  • 접힌 엣지: 503 → 319. 머리는 90 → 0, 목 부분은 119 → 40
  • 표면 잔차: 0.0512 → 0.0482
  • 면 수 13,095, 사각면 100%, 극점 128개(변화 없음)

접힌 엣지가 아직 세 자리로 남아 있다. 목 부분에 몰려 있고, 이건 머리와 몸통을 잇는 방식 자체를 다시 짜야 줄어든다. 남은 숫자를 0으로 만들지 않고 판을 닫았다 — 지금 방식으로 짜낼 수 있는 만큼은 짜냈고, 여기서 더 가려면 구조를 바꿔야 하는데 그건 다음 판의 결정이다.

이 판의 실제 교훈

지표가 0을 내고 있는데 눈에는 보인다면, 먼저 의심할 것은 눈이 아니라 지표다. 그런데 그 순서가 잘 안 지켜진다. 지표는 숫자라서 객관적으로 보이고, 눈은 주관적으로 보이기 때문이다.

이번엔 갈리는 지점이 명확했다. 지표는 개수를 세고 있었고 결함은 위치에 있었다. 지표를 못 믿게 된 건 아니다. 그 지표가 답하는 질문이 우리 질문과 달랐다.

그리고 버린 설계도 기록으로 남겼다. 이번 판에서 시도했다가 폐기한 접근이 셋인데, 왜 안 됐는지를 안 적으면 다음 판에서 같은 것을 다시 시도한다. 실패한 설계의 기록은 성공한 설계의 기록만큼 시간을 아낀다.

#blender#topology#retopology#quad-mesh#procedural-generation#geometry#metrics