카메라 트래킹 오차는 낮은데 CG가 미끄러질 때: 트랙·지면 확인
낮은 오차는 좋은 신호지만 보증서는 아닙니다. 숫자 대신 오차가 어디에 언제 몰렸는지를 보세요.
카메라 트래킹 오차가 낮은데도 CG가 바닥에서 미끄러진다면 평균 숫자보다 트랙의 위치와 지면 정렬을 먼저 보세요. 솔브 결과에는 0점대 픽셀 오차가 찍혀 있습니다. 트랙도 화면을 따라 제법 잘 붙어 있어요. 그런데 바닥에 CG 박스 하나를 놓고 재생하면 이상합니다. 카메라가 옆으로 움직일 때 박스가 바닥 위를 조금씩 미끄러지고, 카메라가 멈추는 순간에는 다시 자리를 잡는 것처럼 보입니다. 특히 가까운 바닥 모서리나 실사 물체 옆에 CG를 붙이면 어긋남이 더 잘 보입니다.
여기서 많은 사람이 솔브 오차 숫자부터 다시 봅니다. “0.8픽셀이니까 0.5까지 낮춰야 하나?” 하고 트랙을 더 찍거나, 오차가 큰 포인트를 골라 지우기 시작하죠. 그런데 숫자는 좋아졌는데 박스는 여전히 미끄러지는 경우가 있습니다. 이때 문제는 단순히 오차가 얼마나 큰가가 아니라 어디에서, 언제, 어떤 방향으로 틀렸는가에 있을 가능성이 큽니다.
카메라 트래킹 오차가 낮아도 트랙 분포가 틀릴 수 있습니다
3DEqualizer, SynthEyes, Nuke CameraTracker 같은 트래커가 보여 주는 솔브 에러(재투영 오차)는 대체로 3D에서 추정한 포인트를 다시 2D 화면에 투영했을 때 실제 트랙 위치와 얼마나 어긋나는지를 나타냅니다. 이 값은 유용합니다. 문제는 평균값 하나가 장면의 모든 실패 방식을 설명하지는 못한다는 점입니다.
예를 들어 화면 오른쪽 벽에 트랙이 잔뜩 몰려 있고 왼쪽 바닥에는 거의 없다고 해봅시다. 벽에 있는 수십 개의 트랙이 서로 잘 맞으면 평균 오차는 낮아질 수 있습니다. 하지만 우리가 CG를 놓을 바닥 영역을 실제로 구속해 주는 정보는 부족합니다. 숫자는 “관측된 포인트들을 잘 설명한다”고 말할 뿐, “CG를 놓을 공간 전체의 카메라 움직임이 정확하다”고 보증하지는 않는 거죠.

그래서 오차가 큰 트랙 몇 개를 지우는 것과 비어 있는 영역에 새 트랙을 붙이는 것은 전혀 다른 작업입니다. 전자는 잘못된 관측을 제거하는 일이고, 후자는 지금까지 없던 공간 정보를 추가하는 일입니다. 분포가 문제라면 삭제만 반복해서는 해결되지 않습니다. 오히려 화면 한쪽의 “착한 트랙”만 남아 평균값은 더 예뻐지고 솔브는 더 편향될 수도 있습니다.
평균은 낮아도 프레임마다 흔들리면 CG는 미끄러집니다
두 번째로 볼 것은 시간입니다. 전체 평균이 낮아도 특정 구간에서 카메라가 미세하게 앞으로 갔다가 뒤로 오거나 회전값이 흔들리면, 고정돼 있어야 할 CG가 바닥 위에서 출렁입니다. 특히 모션블러가 강한 프레임, 피사체가 트랙을 가리는 프레임, 특징점이 잠깐 사라지는 구간에서 이런 현상이 생기기 쉽습니다.

이런 종류의 실패는 시뮬레이션에서 한 프레임 사이의 변화를 놓치는 문제와 겉모습이 비슷합니다. 다만 원리는 다릅니다. 시뮬레이션 쪽의 시간 샘플링이 궁금하다면 빠른 움직임에 서브스텝이 필요한 이유에서 비교해 볼 수 있습니다.
렌즈와 초점거리가 틀리면 화면 중심은 맞아도 가장자리가 미끄러집니다
세 번째는 카메라 모델 자체입니다. 실제 렌즈에 왜곡이 있는데 왜곡을 충분히 다루지 않았거나, 초점거리 추정이 잘못된 상태에서 다른 변수들이 억지로 맞춰지면 일부 트랙은 잘 붙어도 화면 전체의 움직임은 틀어질 수 있습니다. 특히 화면 가장자리의 직선이나 포인트가 시간이 지나며 안팎으로 벌어지는 느낌이 난다면 렌즈 모델을 의심할 가치가 있습니다.
초점거리 오류도 비슷합니다. 카메라 이동량과 화각의 조합이 잘못되면 2D 포인트를 어느 정도 설명하면서도 실제 공간의 깊이 관계가 틀어질 수 있습니다. 가까운 물체와 먼 물체의 패럴랙스가 동시에 자연스러운지 봐야 하는 이유입니다.
카메라는 맞았는데 지면을 잘못 잡아서 미끄러져 보일 수도 있습니다
네 번째는 솔브 이후의 월드 정렬입니다. 카메라 경로가 괜찮아도 지면으로 지정한 포인트들이 실제로 같은 평면에 있지 않거나, 원점과 축 방향을 잘못 잡으면 CG 바닥이 실사 바닥과 미세하게 다른 각도로 놓입니다. 그러면 카메라가 이동할수록 두 평면 사이의 차이가 패럴랙스로 커져서 “솔브가 미끄러진다”고 느끼게 됩니다.

카메라 트래킹 30초 점검: 숫자를 닫고 세 가지만 봅니다
먼저 트랙의 재투영 포인트를 원본 영상 위에 오버레이하고 재생합니다. 포인트가 원본 특징점 위에서 고정돼 있는지, 특히 CG를 놓을 바닥과 화면 가장자리에서 같은 방향으로 밀리는지 봅니다. 여러 포인트가 동시에 한쪽으로 움직인다면 개별 트랙 하나보다 카메라나 렌즈 쪽 문제를 먼저 의심하는 편이 낫습니다.
다음으로 바닥에 큰 그리드를 깔고, 화면 앞쪽과 뒤쪽 바닥에 작은 콘이나 박스를 몇 개 올려 움직임을 봅니다. 바닥 전체를 시각적으로 드러내면 작은 슬립도 잘 보입니다. 그리드 전체가 같은 방향으로 움직이면 카메라·월드 정렬 문제이고, 멀리는 붙는데 가까운 쪽만 벌어지면 깊이와 화각, 지면 설정을 다시 볼 이유가 생깁니다.
마지막으로 에러 그래프를 시간축으로 봅니다. 평균 숫자 하나가 아니라 특정 프레임에서만 튀는지 확인하세요. 급등 구간이 모션블러가 강하거나 트랙이 가려지는 구간과 겹친다면 그 부분부터 손보는 것이 빠릅니다.
수정은 트랙 삭제보다 정보가 부족한 곳을 찾는 것부터 시작합니다
- 오차가 큰 트랙을 무조건 지우기 전에 실제로 잘못 추적됐는지 확인합니다. 화면의 특징점을 벗어나거나 다른 물체로 갈아탄 트랙은 제거하거나 수정해야 합니다. 반대로 트랙 자체는 정확한데 숫자만 상대적으로 크다면, 그 트랙이 오히려 잘못된 솔브를 드러내고 있을 수도 있습니다.
- 빈 영역에 트랙을 추가합니다. 화면 중앙만 가득 채우지 말고 좌우, 가까운 곳과 먼 곳, 가능하면 서로 다른 깊이에 있는 고정된 특징을 확보합니다. 움직이는 사람, 나뭇잎, 반사, 그림자처럼 실제 3D 공간에 고정되지 않은 특징은 카메라를 구속하는 정보로 쓰기 어렵습니다.
- 화면 가장자리에서 체계적인 오차가 보이면 렌즈 왜곡과 초점거리 추정을 점검합니다. 왜곡 보정 전후의 트랙이 어떻게 달라지는지 보고, 직선 구조물이 있다면 가장자리에서 부자연스럽게 휘거나 흔들리지 않는지도 확인합니다.
- 솔브가 안정된 뒤에 지면과 축을 다시 맞춥니다. 실제로 같은 바닥 평면에 있다고 확신할 수 있는 포인트를 기준으로 잡고, 큰 그리드를 얹어 패럴랙스를 확인합니다. 스케일 역시 장면 내 알고 있는 거리나 물체를 기준으로 정해 두면 이후 CG 배치와 카메라 이동량을 판단하기 쉬워집니다.
- 모션블러가 심해 특징점의 중심을 안정적으로 찾기 어려운 프레임은 억지로 모든 프레임을 똑같이 신뢰하지 않습니다. 앞뒤의 선명한 프레임에서 트랙이 일관되게 이어지는지 확인하고, 문제가 특정 구간에 집중되는지 먼저 봅니다.
그리드는 붙어 있는데 CG만 떠 보인다면 솔브 밖을 봐야 합니다
바닥 그리드와 실사 특징점은 완전히 고정돼 있는데 렌더한 CG만 떠 보인다면 카메라 솔브가 원인이 아닐 수 있습니다. 접촉 그림자가 없거나 너무 약하면 실제 위치가 맞아도 물체가 바닥에서 떠 있는 것처럼 느껴집니다. 반사와 그림자의 방향까지 실사와 다르면 그 인상은 더 강해집니다.
또 CG만 지나치게 깨끗하면 움직임 자체가 맞아도 플레이트와 분리돼 보입니다. 이런 경우에는 트래킹을 다시 풀기 전에 실사와 CG의 그레인 맞추기처럼 합성 단계의 일치 여부를 먼저 확인하는 편이 빠릅니다.
한 줄로 정리하면 숫자가 아니라 오차의 위치와 시간을 봐야 합니다
낮은 평균 재투영 오차는 좋은 신호지만, CG가 붙는지는 트랙의 공간 분포·프레임별 흔들림·렌즈 모델·지면 정렬까지 실제 화면에서 확인해야 합니다.
vfx 잡학지식



댓글 0
첫 댓글을 남겨보세요.