Game Play! 팁, 소감, 분석 2018. 10. 24. 20:23
728x90


몬스터헌터 월드 저사양 그래픽 옵션 맞추기



몬헌월드 더럽게 버벅거린다

적정한 프레임을 뽑아내기 위해서는

우리는 그래픽 옵션과 적정한 타협점을 찾아야 한다


나에대해서 말하자면,

빠방한 그래픽에서 버벅거리며 게임하기 보다는

안정적인 프레임을 뽑아내며, 스무드하게 게임하는 것을 즐기는 유저성향을 가졌다

(대략 100 프레임 이상을 선호한다)

30 프레임은 눈과 피부로 팍팍 버벅거림이 느껴지고,

60 프레임은 음 뭐 그래 이런 느낌이고,

100 프레임이 넘어가야 할만하네 라는 안정감을 느낀다


오버워치에서는 거의 170~180 프레임으로 게임을 했었는데,

몬헌월드에서는 무척 버벅거린다


컴터사양은 

i7-4770k

NVidia gtx760


5년전에 맞춘거라 지금은 구려졌다

뭐, 그래도 왠만한 게임들은 고,중에서 잘 돌아가는데...


어쨋든~!


몬헌의 버벅거림의 가장 큰 요인은

배경오브젝트의 갯수와 모델의 고폴리곤 때문인것으로 생각된다

많은 연산량이 필요한 쉐이더 옵션들을 모두 꺼도

고대숲이나, 독기의 골짜기 등의 오브젝트가 많은 장소는

프레임 저하가 없어지지 않는다


이것은 내가 게임을 개발하면서도 많이 겪었던 일인데,

걍,

화면에 고폴리곤의 모델들을 많이 깔면, 발생하는 지극히 당연한 현상이다...

씬관리 연산의 병목 - cpu

많은 폴리곤 그리기의 병목 - gpu


카메라의 컬링 거리를 줄이면, 어느정도 해소될것이라 생각되는데,

아쉽게도 몬헌월드에는 이런 옵션은 없다

그럴것이,

컬링 거리를 줄이면, 좀 멀리 보이는 오브젝트들이 잘려서 보이지 않기 때문에,

멋진 자연이 그냥 반토막이 나버리니까...


음...


뭐, 어쨋든 내가 엔진 개발자이기도 하고,

쉐이더로 구현한 것들은 대략 연산량이 어느정도인지는 알기때문에,

좀더 정확한 조언을 줄수 있다



스샷은 나의 그래픽 셋팅

보면 좀 처참할수 있다

ㅎㅎㅎㅎ

뭐 할수없다, 난 프레임 선호파라!





(이미지를 클릭하면, 크게 출력된다)



해상도를 1360 에 맞추었다


굳이 해상도를 1920 에 꼭 맞출 필요는 없다

1920 이 깔끔하기는 하지만,

1440 도 깔끔한 편이고,

1360 까지는 참을수 있다

단, 1280 부터는 눈이 아파오기 시작하므로 권장하지 않는다


해상도를 낮추는 것의 이점은

픽셀쉐이더를 사용하는 모든 그래픽연산의 부하를 줄여준다는것

옵션에 있는 거의 모든 그래픽 옵션이 픽셀쉐이더를 사용하므로,

해상도를 낮추는 것은 거의 모든 그래픽 옵션의 부하를 줄여서

전체적으로 프레임을 크게 업 시켜준다고 보면된다


1920 * 1080 개의 픽셀이 각각 뭔가를 연산하고 있는데,

(복잡하고 식이 많은 연산일수록 부하가 커진다)

픽셀의 갯수를 1360 * 768 개로 줄여버리면?

더 설명안해도 감이 올것이다


그래서,

해상도를 낮추는 것은 매우 큰 이점이 있다!

잊지말자




렌더링 해상도라는 것은

전체 게임 화면이 담길 렌더타겟의 해상도를 말하는 것인데,

디폴트는 화면크기(스크린 해상도)와 렌더타겟크기 가 동일한 것이다,

우리가 보통 플레이하는 게임의 상태는 

당연히, 화면크기 = 렌더타겟크기


렌더링 해상도를 줄이면, 스크린 해상도를 줄이는 것과 비슷한 효과가 있는데,

해상도 줄이는것과 같은 이치로, 픽셀당 연산이 줄어드므로, 

전체적인 픽셀 연산량이 줄어든다고 볼수있다

반대로 해상도를 늘이면, 그만큼 픽셀당 연산이 늘어나는 것이고,


1920*1080 화면을 50% 해상도로 출력한다면?

우리가 960*540 스크린 해상도로 게임을 플레이하는 것과 같을 것이다

단, 960*540 이라는 것을 스크린해상도에서 선택할수는 없으니,

(일반적인 모니터해상도에서는 지원하지 않는 포맷이다)

렌더링 해상도를 통해서 모니터해상도에서는 선택할수없는 해상도를 사용한다라고 

볼수있을듯



텍스쳐 품질은

자신의 그래픽카드 메모리가 2g 정도라면, 고~중 정도는 충분할듯 (1024)

캐릭터나 공룡, 자연물 등에 입혀지는 텍스쳐의 크기를 말하는데,

뭐, 너무 작게 잡으면 정말 볼품없어진다, 오브젝트가 클수록 티가 팍팍난다

직업 확인해 보도록~! ㅎㅎ


앰비언트 오클루젼

그림자의 어두운 부분을 좀더 짙게 만들어주는 연산,

그리고, 그림자가 잘 생기지 않던 세밀한 부분에도 그림자를 만들어준다

(오브젝트들이 맞물린 곳에 세밀한 음영을 만들어준다)


자신 주위의 픽셀들을 훑어가며, 차폐값을 계산하는데,

픽셀당 연산이 아주 많다

물론, 최적화를 어떻게했을지에 따라 연산을 줄일수도 있었겠지만,


속도를 위해서는 끄는것을 추천한다


그리고, 앰비언트 오클루전 고, 중, 하 의 차이는

앰비언트 연산을 하는 이미지버퍼의 크기 변동과 연산의 간략화일것인데,

이미지버퍼가 작아지면 좀 지저분해 보이듯이 그림자가 입혀지므로,

(작은 이미지를 늘려서 원본에 맞춘다는 개념으로 볼수있다,

정확하게는, 이미지의 픽셀값을 가져와서 계산하는것인데, 이미지가 작은것을 늘릴수록,

값이 근처의 값과 합쳐져서 뭉뜽그려지게 되므로)

저로 할바에는 차라리 끄는것이 나을듯하다


볼륨묘사

볼륨렌더링,

흐음~~

볼륨포그를 구현할때, 볼륨이미지 버퍼에 씬의 오브젝트들을 다시 렌더링시켜주어야 하므로

(뎁스값을 남기기 위해서), 추가적인 렌더링이 필요하다


나의 경우는 볼륨포그를 사용할때, 국소적인 위치에 사용해서, 

큰폭의 프레임하락은 없었는데,

몬헌의 경우, 볼륨영역도 전체씬이 해당될 정도로 매우 크게 잡고, 

그려지는 것이 워낙 많으므로, 큰폭의 프레임하락이 생기는 것으로 보여진다


그림자

나도 사용했었던 그래픽 옵션이기도 한데,

그림자의 고, 중, 저는 

일단, 그림자 이미지(그림자 텍스쳐 버퍼)의 크기를 크게 -> 작게

조정해주는 것이라 볼수있다


픽셀 연산에서도 인근픽셀의 샘플링 계산을 해주는 경우라면,

샘플링 단계를 낮추어주는 것으로 속도상의 이점이 생긴다


추측컨데, 몬헌의 그림자의 경우, 픽셀의 샘플링을 해서 출력하는 것으로 보여지고

저에서는 샘플링 범위를 좀더 줄이는 것으로 생각되어진다


어쨋든 결론적으로는,

그림자는 어느게임에서나 '중' 정도로 선택하면, 대략 이미지 품질의 큰 저하없이,

큰 부하없이 수행된다

최적화에 많은 공을 들이는 부분이기 때문이기도 하고,



안티앨리어싱

픽셀의 계단현상제거인데,

순수 픽셀쉐이더 연산이고,

사용안해도 별로 크게 차이는 없다

나는 거의 모든 게임에서 사용을하지 않는다


해상도가 높을때는 계단현상이 거의 두드러지지도 않을뿐더러,

사용하게되면, 화면이 뭉개져서 부드러워지는 경우가 있는데,

오히려 화면 디테일이 떨어지는 느낌이랄까


오히려 저해상도일때 계단현상이 많이 두드러지므로

저해상도일때 켜주는 것이 좀 더 도움이 되겠다

적당한걸로 선택해주자, 보통 FSAA 로 사용


LOD

레벨오브디테일


모델의 폴리곤 갯수를 조절하는 것인데,

멀리 있는것은 폴리곤 갯수를  줄여서 대충 그리는  것이다

(멀어서 잘 티가 안나니까)


LOD 바이어스가 클수록 멀리 떨어진 오브젝트만 폴리곤 갯수가 줄어든다

적으면, 바로 가까이 있는 오브젝트의 폴리곤도 줄어들어 많이 티가 난다


LOD 레벨 상한은 화면에 바로바로 티가 나니,

주둔지 들어가서 껏다, 켜보면 된다

크크크, 왠만하면 켜는게 좋긴한데,,,







서브서페이스 스캐터링

-구현해보지 않았으니, 이것은 패스

-다만, 피부질감에 관련된 부분이니,

일반 npc 와 특정 몬스터에게만 적용되었을 것이다,

우리가 늘상 왔다갔다하는 거점지에서, 얼마나 영향이 있는지만 체크해보면 될듯


스크린 서페이스 리플렉션

-직접 구현해보지 않았지만,

-대략 내용을 살펴보니,

-하나의 픽셀에서, 자신의 주위로 여러번의 충돌검사가 필요한 연산이다

-부하가 좀 있을듯, 끄자


물반사

-미리 만들어둔 환경맵을 이용할경우, 연산량이 많지 않은 처리

-요거정도는 켜두어도 거의 영향이 없을듯

-물에만 사용되므로 국소적으로 사용된다고 볼수도있고


이방성 필터링 품질

- 쉐이더 연산이 아니라,

그래픽카드에서 자동 지원하는 부분이므로,

자신의 그래픽카드의 사양이 좋다면, 아주 높게 잡아도 아무 상관이 없다

잘모르면, 고로 잡아두어도 프레임에는 별반 영향이 없을 것이다

이것은 뭐 별 상관이 없을듯


다이나믹 레인지

픽셀당 8bit, rgba 모두 합해서 32bit 

일반적인 로우 다이나믹 레인지 ldr,

채널당 256컬러의 표현


픽셀당 16bit, rgba 모두 합해서 64bit, 

하이 다이나믹 레인지, hdr 이다

채널당 65536 컬러의 표현,

(아직은 이것저것의 한계로, 어두운영역, 밝은 영역의 색상을 좀더 넓게 쓰는

정도의 의미이고, 수치상의 모든 컬러가 표현되지는 않는다,

대부분의 모니터가 채널당 256컬러의 모니터를 사용하므로, 

현재의 hdr 처리는 결국, 최종적으로 256 단계로 다시 값을 조정해야 한다)


hdr 을 적용하면, 일단 몇몇의 텍스쳐 이미지가 64bit 로 사용되어야 하므로,

그래픽 카드의 메모리 사용량이 많아진다, 

따라서 그래픽 카드의 메모리가 작다면, 사용안하는 것이 좋다


쉐이더에서 몇가지 추가적인 처리가 필요해지지만, 프레임에 큰 영향을 줄정도의

연산량은 아니다

hdr 을 사용하면, 어두운곳, 밝은 곳에서, 좀더 넓어진 빛표현 범위로 인해, 

디테일해진 색상을 볼수있다, 

특히 빛나는 곳이 빛표현범위가 넓어져, 더욱 더 이뻐진다


모션블러

어차피 특정 경우에만 발생하는 이펙트와 같은 성질의 것이므로,

취향껏 선택하자,

모션블러가 출력될때 프레임이 급하락한다면 꺼라!

(근데 뭐, 별 영향은 없을 것이다)



Z-Prepass

cpu 에서 깊이z 값을 미리 계산해둔다?

쉐이더에서가 아니라??

이것은 잘 몰랐던 개념이라, 흐음,,,

어떤식의 구현인지 궁금하다



-----------------------------------------------------------------------------


뭐, 대략적인 개념은 설명이 되었을듯하다

각자의 컴퓨터 사양마다 조금씩의 차이들이 있을테니까,

결국은 셋팅을 맞추어두고,

한번씩 돌려보면서 다시 셋팅을 맞추어보기를 바란다


사양이 좋다면, 상관없다

빵빵하게 잘 즐기면 된다!


그러나, 그렇지 않고

프레임에 민감하다면,


고사양으로 맞추어서

월드를 좀 돌아다니다가

(사냥은 하지말고, 버벅거리니까)

눈요기좀 하고


사냥용 그래픽 셋팅으로 바꾸어서

안정적인 프레임을 뽑아내는 것을

추천한다


컴퓨터 사양이 좋지않은 우리들은

그렇게해야,

사냥을 제대로 할수있고,

게임이 즐거워진다


이상!!


*추가*

참고로, 제일 확실한 방법은

Fraps 를 다운받아 설치하고,

(검색해보면 쉽게 나온다)


몬헌을 실행해서, Fraps 로 실시간 프레임 수치를 체크하면서,

그래픽 옵션을 껏다, 켜보면서 프레임 변화를 체크해보는 것이다


독기의 골짜기 맨밑 등의 좀 버벅이는 장소에 가서,

그래픽 옵션을 조정하며, 프레임 변화를 체크해보자!



728x90
posted by BK dddDang
: