어푸푸

ReShade 설치 및 게임에 CAS (RIS) 적용하기 본문

잡동사니/IT

ReShade 설치 및 게임에 CAS (RIS) 적용하기

예수님부처 2019. 9. 18. 22:53

앞의 포스트에서 얘기했던것과 마찬가지로 ReShade를 이용해서 손쉽게 CAS를 적용할 수 있다. CAS(Constrast Adaptive Sharpening)는 RIS(Radeon Image Sharpening)에 있는 이미지 샤프닝 필터이다. ReShade는 익숙해질 경우 1분 안쪽의 시간만으로도 설치할 수 있다. 이번 포스트에서는 그래서 이 ReShade를 어떻게 설치하는지, 그리고 CAS를 어떻게 적용하는지를 다룰 것이다. 더불어서 AMD가 공개한 CAS가 도대체 ReShade에 어떻게 적용이 되었는지, 어떤 버전이 더 효율적인지도 간단하게 얘기할 것이다.

일단 ReShade는 게임마다 설치해줘야 한다. 그리고 레지스트리 등에 지저분하게 뭘 등록하지 않는 것으로 보인다. 한 마디로 ReShade를 설치하고 지웠을 때 컴퓨터에 아무런 부정적인 영향도 없다. 또한 ReShade의 삭제는 파일 삭제만해도 수행될 수 있으며, ReShade 인스톨러를 이용하면 삭제도 원클릭으로 된다. ReShade 삭제는 ReShade가 설치된 게임에 다시 ReShade를 설치하려고하면 뜨는 메뉴창에서 수행할 수 있다. Yes 버튼을 누르면 파일을 덮어써서 새로 ReShade를 깔고 No를 누르면 ReShade를 삭제한다. Cancel을 누르면 아무것도 하지 않는다.

ReShade 설치와 CAS 적용이 이 포스트의 주제인데 왜 ReShade의 삭제에 대해서 이야기하냐고? 첫 번째로 괜히 설치했다가 삭제하는게 어려울까봐 겁먹지 말고 그냥 한 번 깔아보라는 의미에서 적었다. 두 번째로 누군가는 분명히 ReShade를 간단하게 깔끔하게 지우는 방법을 찾고 있었을 것이다. 마지막으로 내가 기억이 안날 때 보기 위해서이다.

자 이제 본론으로 들어가자. ReShade를 어떻게 설치하는가? ReShade 공식 홈페이지로 들어가자. 그리고 메인 화면에 바로 보이는 보라색 Download 버튼을 눌러서 다운로드해도 되고 스크롤을 끝까지 내려서 다운로드 버튼을 눌러 다운로드해도 된다. ReShade의 공식 홈페이지 주소는 다음과 같다.
https://reshade.me/

이제 ReShade를 설치해보자. 일단 설치하고자 하는 게임이 다이렉트 몇 기반인지 알아야 한다. 자동으로 잡아주는 것 같기도 하지만 확실하지는 않으니까 다이렉트 몇 기반인지 일단 알아보자. 예를 들어서 League of Legends 같은 경우에는 Direct3D 9 기반, 위쳐 3 같은 경우에는 Direct3D 10+이다. 이걸 어디에서 찾느냐. 구글링을 해도 좋고, ReShade 공식 홈페이지의 Game 탭에 들어가면 나와있기도 하다. 표의 Render API를 보면 된다. 어쨌거나 다이렉트 몇 기반인지 알았다면 설치의 90%는 끝난셈이다.

이제 다운로드 받은 ReShade 설치파일을 실행해보자. 아래와 같은 화면이 뜬다. 당황하지 말자. 가운데에 큼지막한 버튼을 눌러서 설치하고자 하는 게임 실행파일을 선택하자.

 

잠깐! 게임 실행파일이 뭔지 모르겠다고? 이해한다. 왜냐하면 요즘 게임 실행파일을 꽁꽁 숨겨놓기도 하기 때문이다. (비유적인 표현이다. 진짜로 숨겨놓지는 않는다. 그저 우리가 어디에 있는지 모를뿐이다.) 그런 경우에는 게임을 실행하고 Ctrl+Shift+Esc 키를 눌러서 작업 관리자를 연 뒤에 실행된 게임의 프로세스를 클릭하고 오른쪽 마우스를 누르자. 파일 위치 열기라는 메뉴가 있을 것이다. 해당 메뉴를 클릭하면 게임 실행파일이 있는 폴더가 열린다.

 

이제 게임 실행파일도 선택해줬고, (자동으로 Render API가 잡히지 않았다면) Direct3D 9인지 Direct 3D 10+인지 OpenGL인지 선택도 할 수 있을 것이다. 그러면 아래와 같은 알림창이 뜬다. ReShade에서 제공하는 기본 필터들을 다운로드 받겠냐는 의미다. 물론 하나도 안쓸꺼지만 일단 예를 눌러준다. 그 이유는 그렇게 해야 얘네들이 자동으로 기본 폴더 등을 생성해주기 때문이다.

 

예를 눌렀다면 아래와 같이 어떤 기본 필터들을 다운로드 할 것인지가 뜬다. 전부 다 다운로드 받아도 상관은 없겠지만 그렇게 되면 로딩하는데에 시간이 많이 걸린다. 그렇다고 하나도 다운로드 받지 않으면 기본 폴더가 생성되지 않을 수도 있다. 그러니까 대충 아무거나 하나만 체크하고 OK를 누르자. 그렇게 하면 ReShade 설치가 완료된다.

 

상당히 간단하다. ReShade 설치가 잘 되었는지 어떻게 아냐고? 설치한 게임을 실행해보자. ReShade가 정상적으로 설치되었다면 아래 스크린 샷과 같이 게임이 시작되었을 때 상단에 잠시동안 ReShade 관련 메세지가 뜬다. 이 메세지가 뜨면 잘 설치된거다. 안뜨면 어떡하냐고? 글쎄.. Render API 버전을 잘못 선택했거나, 엉뚱한 실행파일을 게임 실행파일이라고 선택했을 가능성이 크다. 그런 경우에는 쫄지 말고 다시 한 번 ReShade 설치 파일을 실행해서 아까 설치를 하려고 한 (잘못된) 게임 실행파일을 선택한다. 그리고 나오는 알림창에서 No를 누르면 깔끔하게 ReShade가 삭제된다. 그리고 다시 제대로 설치하면 된다. 참 쉽죠?

 

이후 Home 키를 누르면 아래 스크린 샷과 같이 ReShade 메뉴로 진입할 수 있다. 처음에 튜토리얼이라고 뭐라고 나오는데 그냥 Continue나 OK 막 눌러주면 된다. 필자는 이미 CAS를 설치해서 CAS가 보이지만 착실히 따라왔다면 아까 설치한 하나의 필터만 보일것이다. 그리고 만약에 Home키가 게임 상에서의 키와 충돌해서 이를 바꾸고 싶으면 ReShade 메뉴의 Settings에서 ReShade 메뉴 진입 단축키 등을 설정할 수 있다.

 

이제 CAS를 적용해보자. AMD 형님들께서 넓은 마음으로 힘들게 개발한 CAS를 오픈소스로 공개해주셨다. 마음속으로 ㄳ를 한 번 외쳐주자. CAS 소스 파일은 github에서 다운받을 수 있다. 최신 버전을 다운로드 하고 싶으면 아래 URL에서 다운로드 받자. 물론 아래에 묶음으로 자료들을 업로드할테니 그걸 다운받아도 된다.
https://github.com/GPUOpen-Effects/FidelityFX/tree/master/FFX_CAS/ffx-cas-headers

CAS가 공개되어 있는 것은 좋다. 근데 이걸 바로 ReShade에서 사용할 수 없다. 근데 해외에서 어떤 사람이 이 오픈 소스를 ReShade에서 사용할 수 있도록 wrapper를 작성해줬다. 그래서 하나의 소스 파일만 하나 더 넣어주면 ReShade에서 CAS를 사용할 수 있다. 근데 이것만으로 부족했던걸까? 또 다른 사람은 아예 CAS 알고리즘 자체를 ReShade에서 돌아가도록 자체적으로 작성해버렸다. 근데 직접 테스트해보니까 wrapper를 쓰는게 속도가 더 빠르다. 물론 결과물은 좀 다르다. (아래에 좀 더 자세히 서술함ㅁ 작성된 소스파일의 주석을 보니까 본인 나름대로 잘 최적화했다고 만족스러워하던데 원본이 더 빠르게 돌아가는 것을 알았을 때의 반응이 궁금하긴 하다. 어쨌든 이제 여기에서 선택지가 둘 있다.

1. 공개된 CAS 및 wrapper를 사용한다 - 비추천
아래 세 파일을 다운로드 받고 ReShade 설치 게임 폴더\reshade-shaders\Shaders 폴더에 이 파일들을 넣어준다. 이 파일들이 연산 속도는 더 빠르다. 참고로 말하자면 ffx_a.h, ffx_cas.h가 AMD에서 개발한 CAS 소스파일이고 FidelityFX_CAS.fx가 ReShade에서 CAS를 쓸 수 있게 해주는 wrapper이다. 열어보면 알겠지만 그냥 include 한 다음에 직접적으로 호출을 해버린다. 또 다른 장점으로는 CAS가 업데이드 되어 알고리즘이 수정되었을 경우 FidelityFX_CAS.fx는 그대로 두고 나머지 두 소스 파일만 교체하여 쓸 수 있다는 점이다. 하지만 단점이 아예 없는 것은 아닌데, 소스 코드에서 샤프닝을 할 때 녹색 값만 사용하기 때문에 노란색과 관련하여 색깔 왜곡이 나타날 수 있는 것을 확인했다.

ffx_a.h
0.12MB
ffx_cas.h
0.06MB
FidelityFX_CAS.fx
0.00MB

 

2. ReShade로 포팅된 소스코드를 사용한다 - 추천 1
아래 파일을 다운로드 받고 ReShade 설치 게임 폴더\reshade-shaders\Shaders 폴더에 이 파일을 넣어준다. 열어보면 알겠지만 AMD에서 공개한 CAS 파일들을 사용하지 않고 그냥 알고리즘 자체를 포팅해버렸다. 연산 속도는 위에 있는 wrapper를 사용하는게 더 좋다. 하지만 색깔 왜곡 문제는 훨씬 완화되었다. 알아서 판단하자. 파일을 세 개나 (?) 다운로드 받기 귀찮은 사람과 색깔 왜곡이 중요한 사람은 이거 쓰자. 성능 차이가 그렇게 크지는 않다. 후처리 시간에 약 0.03ms정도가 차이나는 것 같다.

CAS.fx
0.00MB

 

3. ReShade로 포팅된 소스코드를 사용한다 - 추천 2
팟플레이어용으로 포팅한 코드를 다시 리쉐이드용으로 포팅하였다. 장점이라면 언제든지 열어서 녹색만으로 샤프닝을 진행할 것인지, RGB 값 따로따로 샤프닝을 진행할 것인지를 쉽게 파악할 수 있다는 것이다. 위 코드랑 후처리 시간에 유의미한 차이가 나지 않는 것을 확인하였다.

CAS_SM.fx
0.00MB

 

셋 중에 하나를 했다면 (둘 다 해도 문제는 안생긴다.) 게임을 실행하고 ReShade 메뉴로 들어가자 Home 메뉴에 보면 체크를 할 수 있는 것들이 있는데, 거기에 ContrastAdaptiveSharpen이나 FidelityFX_CAS가 있으면 성공이다. 체크해주자. 하나만 체크하면 된다. 위 세 개 파일을 넣어준 사람은 FidelityFX_CAS가 있을 것이고, 한 개의 파일을 넣어준 사람은 ContrastAdaptiveSharpen라고 있을 것이다. 합쳐서 네 파일 다 넣어준 사람은 둘 다 있을 것이다. 둘 다 체크하면 이미지 샤프닝이 두 번 된다. 그러지 말자. 그리고 위에 스크린샷을 보면 알겠지만 아래에 샤프닝 강도를 조절할 수 있게 되어있다. 경험상, 그리고 해외의 글을 읽어보니 샤프닝 강도는 0.5 정도를 주는게 좋아보인다. CAS는 거의 GPU의 계산 자원을 사용하지 않는다. Statistics 메뉴를 보면 아래와 같이 후처리 시간이 나오는데 실제 프레임 렌더링 시간에 비해서 매우 작은 것을 알 수 있다.

 

여기까지 해서 적용해봤다면 알겠지만 CAS의 효과는 정말 끝내준다. 아래 두 그림은 FHD 해상도에서 CAS 적용 유무에 따른 스크린 샷이다. 더 보기좋게 찍었으면 좋겠지만 귀찮은 관계로 여기까지만 하기로 한다. CAS 정말 좋다. 써보는걸 강력 추천한다. 위쪽 사진이 CAS를 적용하지 않았을 때이고, 아래쪽 사진이 CAS를 적용했을 때이다. 티스토리에서 자체적으로 그림을 작게 스케일링해줘서 차이점을 알아보기 힘들수도 있지만 차이가 정말 많이 난다는 것 하나는 확실하게 이야기할 수 있다. 차이가 어느 정도인지 이야기하자면 시력이 0.9인 것과 안경을 써서 1.5가 된 정도의 차이가 체감으로 느껴진다.

 

CAS 적용 유무에 따른 차이는 아래 Youtube 비디오에서 확실하게 체감할 수 있다.
https://youtu.be/8PON7Vtdbk0

 

그럼 이만

엔비디아에서 이미지 샤프닝 필터를 모든 게임에 적용할 수 있도록 업데이트 했다. 엔비디아의 샤프닝 필터를 쓰자.

미친 엔비디아... 테스트를 해봤더니 대부분의 게임들에서는 샤프닝 필터가 잘 적용되지만, 적용이 안되는 게임도 있는 것을 확인했다.  예를 들면 GTA 5의 경우 리쉐이드도, 프리스타일로도 샤프닝 필터가 잘 적용되지만, 희한하게 엔비디아 제어판의 샤프닝 기능으로는 적용되지 않는다. 심지어 적용이 되었는지 아닌지 확인하려면 엔비디아 제어판에서 샤프닝 옵션은 껐다켰다 하면서 스크린 샷을 찍고 비교해봐야 한다. 그리하여 필자는 다음과 같이 제안한다.

1. 무고밴 및 핵 사용시 밴 위험이 큰 온라인 게임의 경우 (대표적으로 GTA 5)
Reshade를 사용하지 말자. 리쉐이드는 픽셀 및 마우스 키보드 후킹이 사용되기 때문에 핵으로 오인될 수 있는 여지가 있다고 한다. 그렇게 밴 먹었다는 사람을 아직 보지는 못했지만 그래도 안전이 최고 아니겠는가. 프리스타일 및 엔비디아 제어판 샤프닝을 사용하자. 다만 위에서 언급한 것과 같이 엔비디아 제어판 옵션을 사용할 경우 옵션을 껐다 켰다 하면서 스크린샷을 찍고 비교해서 샤프닝이 제대로 적용이 되는지 확인하고 사용하자.

2. 밴 위험이 크지 않은 게임의 경우
나는 Reshade를 추천한다. 엔비디아 제어판의 경우 껐다 켰다 하면서 확인하기가 너무 귀찮고, 리쉐이드는 실시간으로 껐다 켰다 하면서 확인할 수 있기 때문이다. 엔비디아 프리스타일을 사용하기 위해 필요한 오버레이는 게임 프레임을 조금 잡아먹는 것으로 알려져있기 때문에 더 그렇다.

3. Reshade를 사용할 수 없는 게임의 경우
Reshade를 전혀 적용할 수 없는 게임들이 존재한다. 예를 들자면 윈도우 스토어에서 받은 게임의 경우가 그렇다. 이러한 게임들은 게임 설치 경로에 전혀 접근할 수 없다. 게임을 하나밖에 테스트해보지 않았지만, 엔비디아 프리스타일도 안먹는 것 같다. 이런 게임의 경우에는 엔비디아 제어판의 샤프닝 기능을 사용할 수 밖에 없다. 샤프닝 기능을 끄고 스크린샷을 찍고, 샤프닝 기능을 키고 똑같은 (혹은 비슷한) 장면의 스크린 샷을 찍자. 그리고 두 개를 비교해서 샤프닝 기능이 적용되었는지 확인하자. 만약에 적용이 안되었다면.. 난 아직 방법을 모르겠다. 엔비디아에 연락해보자.