게임을 즐기다 보면 화면 중간이 가로로 갈라지는 현상을 봅니다. 마치 사진을 반으로 찢어서 잘못 이어 붙인 것 같죠. 엔진이 고장 난 것은 아닌지 걱정될 수도 있습니다. 하지만 이것은 렌더링 오류가 아닙니다.
이런 문제는 보통 타이밍이 맞지 않아서 생깁니다. 이미지를 만드는 쪽과 보여 주는 쪽의 속도가 다르기 때문이죠. 오늘은 이 흥미로운 현상에 대해 알아보겠습니다.
화면 찢어짐이 발생하는 이유
이 현상을 전문 용어로 화면 찢어짐(Screen Tearing)이라고 부릅니다. GPU가 이미지를 교체하는 박자와 모니터가 그리는 박자가 어긋날 때 발생하죠. 모니터는 화면을 위에서 아래로 한 줄씩 그립니다.

그런데 모니터가 그림을 그리는 도중에 새로운 장면이 도착하면 어떻게 될까요? 화면의 윗부분은 이전 프레임을 보여 주고 아랫부분은 새 프레임을 보여 줍니다. 이렇게 되면 화면 중간에 경계선이 생깁니다.
카메라를 빠르게 돌릴 때 이 경계선은 더욱 잘 보입니다. 위쪽과 아래쪽의 장면 차이가 크기 때문입니다. 시각적으로 상당히 거슬리는 현상 중 하나입니다.
문제를 해결하는 수직 동기화
이 문제를 막기 위해 등장한 기술이 바로 V-Sync(Vertical Synchronization)입니다. 우리말로는 수직 동기화라고 합니다. 이름 그대로 수직 주파수에 화면 그리는 타이밍을 맞추는 기술입니다.
이 기술은 버퍼를 아무 때나 교체하지 못하게 막습니다. 모니터가 한 화면을 다 그릴 때까지 얌전히 기다리게 하죠. 그리고 다 그린 직후의 아주 짧은 틈을 노립니다.
이 짧은 틈을 수직 동기화 구간이라고 합니다. 이때만 재빨리 다음 장면으로 교체하는 것입니다. 이렇게 하면 도중에 화면이 바뀌는 일이 없어집니다.
깨끗한 화면을 위한 대가
V-Sync를 켜면 화면 찢어짐은 말끔히 사라집니다. 하나의 화면에는 항상 하나의 완성된 그림만 표시되니까요. 덕분에 화면이 훨씬 정돈되고 부드러워 보입니다.
하지만 세상에 공짜는 없습니다. 이 방식에는 뚜렷한 단점이 존재합니다. 바로 프레임 레이트가 모니터 주사율에 묶인다는 점입니다.
여러분의 모니터가 60Hz라고 가정해 봅시다. 그러면 GPU 성능이 아무리 좋아도 초당 60번 이상 화면을 그릴 수 없습니다. 강제로 속도 제한이 걸리는 셈입니다.
프레임 드롭과 입력 지연
더 큰 문제는 성능이 조금이라도 부족할 때 발생합니다. 60프레임을 유지하지 못하면 다음 동기화 타이밍까지 무작정 기다려야 합니다. 그러면 프레임이 60에서 30으로 뚝 떨어집니다.
이것은 단순히 조금 느려지는 수준이 아닙니다. 플레이어는 화면이 툭 끊기는 듯한 불쾌함을 느낍니다. 우리가 흔히 말하는 렉 걸린 느낌과 비슷합니다.
또한 입력 지연이라는 부작용도 생깁니다. 화면이 제때 갱신되지 않고 한 템포 늦게 뜨기 때문입니다. 마우스를 움직였는데 화면이 뒤늦게 따라오는 느낌을 받게 되죠.
선택은 사용자의 몫입니다
V-Sync는 장점과 단점이 아주 명확한 기술입니다. 시각적인 깔끔함을 얻는 대신 반응 속도를 희생해야 할 수도 있습니다. 그래서 많은 게임이 이 기능을 옵션으로 제공합니다.
프로그래머는 이 딜레마를 해결하기 위해 다양한 기술을 연구합니다. 가변 주사율 같은 기술도 그 노력의 일환이죠. 하지만 기본 원리는 여전히 타이밍 조절에 있습니다.
여러분은 어떤 환경을 선호하시나요? 깔끔한 화면이 중요한지 혹은 빠른 반응 속도가 중요한지 고민해 보세요. 상황에 맞는 설정을 찾는 것이 쾌적한 게임 생활의 첫걸음입니다.