요즘 개발중인 OpenGL 렌더러의 성능 향상 작업을 하면서 glfw의 raw mouse 옵션 이란 것을 알게 되었습니다.
처음에 이 옵션을 끄고 개발했었는데 마우스 값이 중간에 한번씩 튀는 경우가 자주 발생했고,
결국 렌더링 된 최종 게임 화면도 덜덜 떨리듯이 보였습니다.
분명히 프레임은 60프레임 이상으로 잘 나오는 상태였으나 마우스를 움직이면서 시야를 변경하면
프레임이 급격히 저하된 듯 한 모습이 나온 것이죠.
특히 FPS시점에서 키보드 이동과 마우스 회전을 동시에 사용할 때 더욱 도드라져 보였습니다.
하나의 물체에 초점을 맞춘 뒤 마치 공전하듯 이동을 하면 해당 물체가 덜덜덜 떨리는 것 처럼 렌더링 되었습니다.
체감상 60프레임에서 20프레임 정도로 확 떨어진듯한 느낌이었죠.
해결 방법 :
glfwSetInputMode(mGlfwWindow, GLFW_RAW_MOUSE_MOTION, GLFW_TRUE);
마우스 입력값을 받아오는 부분은 glfw라이브러리를 사용했습니다.
위 옵션을 켜주면 가공되지 않은 원본 그대로의 마우스 포지션 값을 전달받을 수 있습니다.
FPS처럼 마우스 이동에 따라 시점이 바뀌는 게임에는 필수적으로 넣어야 할 코드인 것 같습니다.
몇 가지 테스트를 해봤는데 수치상으로도 확연히 차이가 보였습니다.
먼저 코드를 살펴보면,
if (deltaX != 0.0f || deltaY != 0.0f)
{
// 카메라 회전 코드
}
이런식으로 '이번 프레임에서 마우스 움직임 값이 존재할 때' 카메라를 회전시키는 형태로 구현되어 있었습니다.
해당 if문 안에서 glfwGetTime()를 사용하여 프레임 마다 시간값을 기록하였고 일정시간 그 차이를 그래프로 나타낸 모습입니다.


첫 번째 그래프는 중간에 deltaTime 값이 두 배 이상 튀는 구간이 존재하는 것을 볼 수 있습니다.
이렇게 튀는 구간이 생긴다는 건 프레임을 한두번 건너 뛰었다는 뜻이며,
이 때는 카메라 회전을 처리하지 못한 상태라는걸 나타냅니다.
예를들어 1~21프레임 까지 이동과 회전을 동시에 잘 처리하다가,
다음 프레임 하나 건너 뛰고 그 다음 프레임에서 이전까지 누적된 회전값을
한번에 처리하다보니 카메라가 튀는 듯한 모습이 보인 것이죠.
즉, "이동+회전", "이동+회전", ... "이동만 처리", "이동만 처리", "이동+회전", "이동+회전" 이렇게 중간에
카메라 회전을 놓친 구간이 생겨버렸습니다.
분명히 마우스는 계속 움직이고 있었는데도 말이죠.
아이러니하게도 렌더링 프레임 역시 60프레임을 유지하고 있었습니다.
렌더링이나 로직 처리 때문에 걸리는 부하는 아니라는 뜻입니다.
보이기에만 그렇게 보일 뿐 실제로는 60프레임으로 쾌적하게 돌아가고 있는 상태였습니다.
두 번째 그래프를 보면 매 프레임마다 deltaTime 값이 안정적으로 유지되고 있죠.
이 상황에서는 렌더링도 아주 부드럽게 나옵니다.
60프레임 내내 균일한 마우스 입력값을 받고 있으니 카메라 또한 스무스하게 렌더링되고 있는 것입니다.
처음에는 카메라의 forward, right 벡터가 즉시 갱신이 안되는 문제인가 싶어서 해당 부분을 고쳐봤으나 마찬가지였습니다.
카메라 회전 처리를 Update로직에서 Render로직 직전으로 옮겨봐도 문제는 그대로였죠.
다음으로 vsync(수직동기화)를 꺼봤습니다.
렌더링 프레임이 60프레임에서 500프레임으로 상승하면서 문제가 해결된듯 보였지만,
단지 렌더링을 많이 했기에 티가 덜 날 뿐 근본적으로 해결된건 아니었죠.
그리고 화면 찢어짐 현상도 발생했기에 수직동기화를 무조건 끌 수는 없었습니다.
불필요하게 GPU사용률이 높아지는 것 또한 문제였죠.
그래서 대부분의 게임이 옵션으로 둬서 유저가 원할 때 켜고 끌 수 있게 되어 있습니다.
'게임개발 > 게임개발 팁' 카테고리의 다른 글
| [링크] 게임의 재미는 어디서 오는가? (0) | 2026.07.27 |
|---|---|
| 2026 경기 게임 오디션(1등 상금 5천만원) (0) | 2026.07.26 |
| [서울 아웃브레이크] 개발영상 123 (0) | 2026.06.19 |
| GIGDC2026 글로벌 인디 게임제작 경진대회 (0) | 2026.06.13 |
| [공간지원] 2026년 판교 경기문화창조허브 스타트업 오피스 신규 입주기업(17기 1차) 모집 (0) | 2026.05.30 |