어푸푸

메이플스토리 화질 개선 본문

잡동사니/글쎄 무슨 분류가 좋을까?

메이플스토리 화질 개선

예수님부처 2022. 7. 5. 04:14

* 이 포스트의 그림들은 클릭해서 원본 해상도로 봐야함

울프가 메이플스토리를 하는걸 계속 보다보니 나도 때때로 추억에 잠기게 된다. 그런데 메이플스토리에서 버닝 이벤트를 한단다. 버닝 이벤트가 뭔지는 모르겠지만 참을 수가 없어서 거진 20년만에 메이플스토리를 다시 설치했다. 설치할 때 까지만 해도 냄비뚜껑 끼고 힐링을 할 생각이었다. 그런데 아뿔싸. 나의 눈이 공격당했다. 도대체 넥슨이 무슨 정신머리인지 메이플스토리의 화질이 도무지 거슬려서 봐줄 수 없는 수준이었다.

언뜻 보면 문제가 없어보이는 메이플스토리 게임 화면 그러나 뭔가 눈에 아주 거슬린다
얼룩덜룩 노이즈 투성이 단풍나무, 격자무늬가 보이는 하늘, 캐릭터만 멀쩡하고 나머지는 전부 다 노이즈가 너무 심하다

메이플스토리가 오래된 게임이라서 그럴까? 가끔 짤방이 세월에 풍화된 것을 보고 낄낄댈 때가 있었는데, 메이플 스토리도 디지털 풍화가 일어났던 것이다. 아마 개발 초반에 용량 줄이겠다고 죄다 jpeg로 저장한거 아닌가 싶었다. 아무리 추억에 잠기고 싶어도 저렇게 디지털 풍화된 것 마냥 노이즈가 자글자글한 게임은 난 할 수가 없었다. 하지만 난 추억에도 잠기고 싶었다. '누군가 이런 문제를 해결하지 않았을까?' 하는 마음에 하고 검색을 해봐도 나오지 않았다. 몇 사람들도 이런 문제에 공감을 했던지 스크린샷만은 waifu를 통해 딥러닝을 기반으로 업스케일링을 하고 있었지만 인게임을 해결한 사람은 찾을 수 없었다. 결국 직접 해결하는 수밖에... Holy sheet!

 

이걸 어떻게 해결해야할까? 다행히도 이와 비슷한 경험을 한 적이 있었다. 예전에 내가 구매해서 가지고 있던 악보를 좋은 상태로 보관하기 위해 PDF로 스캔한 적이 있는데, 체스판마냥 스캔이 되서 인쇄를 해서 보면 눈이 아픈 적이 있었다. 잘 이해가 안되는가? 나도 이해가 안됐다. 좋은 이해를 위해 아래에 당시 스캔이 되었던 악보의 일부분을 첨부한다. 어때. 당신도 눈 아프징? 어쨌거나 이 때는 다소 쉽게 해결할 수 있었다. 전체적으로 주변과 평균을 낸 다음에 후처리를 조금만 하면 만족할 정도로 개선됐다.

예전에 이렇게 악보 스캔이 되서 노이즈를 없애야 했던 적이 있었다.

조금 경우가 다르긴 하지만 메이플스토리도 어쨌거나 비슷한 과정을 거치면 될거라고 생각했다. 노이즈를 잘 없애줄 수 있는 방법을 찾아서 평균을 내고, 뭉뚝해진 부분은 다시 CAS(RIS)를 써서 보정해주면 되겠지 싶었다. 풍화된 메이플스토리의 원본 스크린샷을 가지고 이런저런 노이즈 제거 방법을 적용해봤는데, 유력한 후보였던 xBRZ 방법 탈락, 간단한 방법인 average blurring 방법도 탈락, Gaussian blurring 방법도 탈락했다. 탈락한 이유는 흐려지면 안되는 글자도 같이 흐려지거나, 디테일이 너무 날라갔기 때문이다. 의외로 Non-local means denoising도 적합하지 않은걸로 나타났는데, 의외로 디테일이 많이 날라가는 측면이 있었고, 메이플스토리에 실시간으로 적용하기에는 계산 비용이 신경쓰인다는 점도 있었다. 최종 승자는 Bilateral filter였다. 의외로 디테일도 많이 날아가지 않고, 글자도 전혀 뭉개지지 않았다. 게다가 마음에 들게 수치를 쉽게 조정할 수 있는 점도 좋았다. 정규 분포를 이용하는 아주 간단한 방법인데 효과적인게 신기방기.

이 시점에서 메이플스토리의 디지털 풍화를 세탁할 수 있는 방법은 확정 되었다. Reshade를 메이플에 설치하고, Bilateral  filter를 일차적으로 적용, 이후에 예전에 코딩을 해놨던 CAS를 적용하면 되는 것이다. 근데.. 희한하게 가볍게 짜여진 Bilateral filter가 보이지 않았다. 결국 이것도 직접 짜야만했다. 시간을 많이 들이기는 싫어서 일단 돌아가게만 해놓긴 했다. 이로써 준비물도 완성! 자 이제 메이플 화질 개선을 위해서 다음과 같은 과정을 같이 따라가보자.

1. reshade.me 홈페이지에서 reshade를 다운받는다.

2. 다운받은 reshade를 설치하자. 다운받은 설치파일을 더블클릭하면 아래와 같은 그림이 나온다. Browse...를 누른 후 메이플스토리 실행파일을 지정해주자. 나의 경우에는 메이플스토리의 실행파일은 "C:/Nexon/Maple/MapleStory.exe'였다. 그 후에 Next 버튼을 눌러주면 된다.

Reshade 설치 step 1: Browse를 누르고 MapleStory.exe를 지정해주자

 

3. DX9를 선택해주자. 이후 계속 Next 버튼을 누른다. 중간에 어떤 프리셋을 다운로드 할건지를 정해야하는데 어차피 필요한거 빼고 다 지울거다. 신경쓰지 말고 냅다 Next를 누르자. 그러다보면 짜잔 reshade 설치가 완료됐다.

Reshade 설치 step 2: DX9 선택 후 Next

 

4. 메이플스토리 실행파일이 있는 폴더로 들어가보자. 띠용~ reshade-shaders라는 폴더가 보인다. 이게 보이면 설치가 잘된거다. 해당 폴더로 들어간 후에 다시 한 번 Shaders 폴더로 들어간다.

Reshade 설치 step 3: 메이플스토리 설치 폴더에 이런 폴더가 있으면 잘 설치된거다

 

5. Shaders 폴더에 뭐가 되게 많다. 어차피 다 안쓸거니까 ReShade.fxh랑 ReShadeUI.fxh빼고는 다 지워준다.

Reshade 설치 step 4: Shaders 폴더 내부에 있는 Reshade.fxh, ReshadeUI.fxh 파일을 빼고 다 지우자

 

6. Shaders 폴더에 아래 두 파일을 집어넣자. 저작권은 뭐.. 내가 코딩한거니까 상관없겠지.

Bilateral_SM.fx
0.00MB
CAS_SM.fx
0.00MB

 

7. 메이플스토리를 실행해보자. 잘 설치가 됐다면 키보드의 Home 버튼을 누르라고 씨부렁댈 것이다. Home 버튼을 누르면 다음과 같이 reshade 메뉴창이 나온다. 상남자답게 Skip Tutorial을 눌러주자. Home키를 단축키로 써서 걱정이라면 하남자처럼 걱정하지 말자. Settings에서 단축키를 변경할 수 있다. 리쉐이드 효과를 껐다 켰다 할 수 있는 토글 단축키 지정도 가능하다.

Reshade 세팅 step 1: Home 버튼을 눌러 나오는 reshade 메뉴에서 상남자답게 튜토리얼을 패스하자

 

8. 튜토리얼을 스킵하면 다음과 같이 좌측에서 Bilateral을 선택할 수가 있다. 선택해주자. 

Bilateral에 체크하자.

 

9. 오.. 디지털 풍화가 사라졌다. 개인 취향에 따라서 sigma_color랑 preprocessor definitions를 조절해도 된다. sigma_color를 높게 할수록 노이즈는 더 많이 걸러지지만 디테일이 날아가고, preprocessor definitions의 farthest pixel 값을 높일수록 더 많은 픽셀 정보를 가져다 쓰지만 디테일이 날아갈 수 있다. 몇 번 테스트 해본결과 그냥 10이랑 2 값을 쓰는게 제일 좋아보여서 그걸 디폴트 값으로 지정해놨다.

드디어 메이플스토리의 디지털 풍화가 사라졌다. 글자도 선명하다

 

10. 이체 취향에 따라 CAS도 체크해서 켠다. 난 왠만하면 켜는걸 추천한다. 화질이 더 좋게 보이기도 하고, Bilateral filter로 약간이나마 뭉개졌던 디테일이 보정되기 때문. 이 때 주의사항이 있는데, CAS가 Bilateral 보다 아래에 있어야 한다는거다. 위쪽 체크하는 곳에서 마우스로 드래그 하면 순서가 바뀐다. 순서가 중요한 이유는 노이즈를 제거하기 전에 샤프닝을 걸면 노이즈가 오히려 증폭되기 때문이다. 노이즈를 제거한 후에 샤프닝이 되어야 한다.

CAS도 켜면 화질이 더 향상된다.

 

이제 과연 화질이 얼마나 향상됐는지 비교해서 알아보자.

 

격자무늬가 보일정도로 자글자글하던 하늘과 단풍나무가 깨끗해졌다

 

자글자글하던 뒷 배경 산과 바닥의 암석이 깔끔해졌다. Bilateral만 적용하면 약간 뭉개졌던 땅이 CAS를 적용하니 보정되었다.

 

노이즈로 자글자글하던 나무와 버섯도 이제는 싱그럽고 깔끔하다