태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
독도 광고 모금 캠페인
홈

이 글은 디시인사이드 FPS 갤러리에 작성하였던 글을 다시 그대로 옮겨왔습니다.
다소 거친 표현이 포함되어 있으니 양해부탁드립니다.

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

 

                    < ATI사 VGA 제품군의 수직동기화 설정 화면 >



설명하기 전에 - 이 본문에서 예로든 Hz의 값고 FPS의 값들은 단순히 계산을 위한 예일뿐이지
                        어떤 게임에서도 어떤 출력기기에서도 해당 본문과 맞아떨어지지는 않는다.


수직동기화란 무엇인가?
수직동기화는 보통 게임에서 Vertical Sync 라고도 불리는 용어이다.


일단 수직동기화에 대해서 알기 전에 우리가 눈으로 항상 보고 있는
모니터(LCD, CRT 등)에 대해서 좀 더 자세히 알아야 할 필요가 있다.

지금 당장 고개를 위로들고 방안에 있는 형광등을 보라!
용자의 눈에 미세한 깜빡임이라도 느껴지는가?
전혀 느껴지지 않을 것이다.
형광등은 1초에 120회 정도 깜빡이며 최근 전자식 안정기를 사용한
형광등의 경우에는 약 60회 정도 깜빡인다고 한다.

이 깜빡임의 단위는 Hz로 표현하며 Hz는 다시 한 번 정의하면
초당 진동수를 나타내는 단위이다.
( 위키백과사전 
http://ko.wikipedia.org/wiki/HZ )

CRT의 경우 보통 이 Hz를 75Hz~120Hz 선에서 사용하는 경우가
대다수이며 실제로 판매되고 있는 CRT 제품들이 그정도 선의
Hz를 지원하고 있으며 이는 해상도에 따라서 달라진다. 물론
해상도가 높아질수록 최대 Hz는 낮게 지원된다.

LCD의 경우에는 Hz가 60Hz로 고정되어 있으며 어떤 해상도든
관계없이 60Hz로 고정되어 있다. 이유는 LCD의 화면을
주사할 때 빛을 조절하는 백라이트의 깜빡임 횟수가 보통
60Hz로 고정되어 있기 때문이다.

어떠한 화면이던지 어떠한 매체든지 인위적으로 표현을 하는
전자기기의 경우에는 우리 눈에 계속 영상정보가 실시간으로
들어오는 것이 아니라 위에서 설명한 것 처럼 초당 X번 처럼
짧은 일정주기마다 계속해서 다른 화면이 보여지는 것이다.

보통 3D 게임에서 화면을 나타내는 주기를 FPS로 표현한다.
(Frame Per Second) 즉 초당 화면에 표현하는 장면의 수이다.

우리는 여기서 상식적인 의문을 가져보게 된다.

만약 용자의 모니터가 60Hz로 작동하고 있는데
3D게임에서는 120FPS를 뿌려준다면 60Hz를
뺀 나머지 60FPS는 어디로 가게되는 것인가?


결론은? 사라지지 않는다. 그 프레임(장면)들도 화면에
다 출력이 된다. 어떻게 출력이 되느냐?

VGA카드가 LCD로 프레임 정보를 보낸다.
1프레임이 그려졌다. LCD는 초당 60프레임만을 원하고 있는데
VGA새끼가
"나는 120프레임을 가지고 있으니까 다 받아쳐먹어라"
라고 말하면서 두번째 프레임을 LCD에게 넘겨주었다.
LCD는 어쩔 수 없이 두번째 프레임을 그리게 되는데

상식적으로 생각했을 때 주는 순서대로만 60프레임을
1초에 다 그려버리면 싱크가 맞지 않게 된다.

즉 1초를 진행하는 동안 120번의 화면변화가 있는데
주는데로 60번을 그리게 된다면 시간의 균형이 깨어져 버린다는 것이다.
나머지 60번은 사라지게 됨은 물론이며
실제 시간은 1초가 지나갔는데 그 1초는 60/120 초를 늘려서
화면에 표현하는 것이기 때문에 상대적으로 움직임이
느려지는 것이다.

그렇기 때문에 어쩔수 없이 LCD는 두번째 프레임을
받으면서 동시에 화면의 일부분에 뿌려주게 되고
이 타이밍은 1프레임이 채 사라지기도 전이다.

다시 설명하면 프레임이 짬뽕으로 뿌려지게 되고
정확한 하나의 장면을 볼 수 없게 되는 것이다.
우리는 보통 이것을 물결현상이라고들 부른다.


 

                    < 위에서 설명한 좆같은 물결현상 >


때문에 좆같은 화면을 보고서 게임을 할 수 없기에
나온 기술이 수직동기화이며 이 것을 활성화시키면
120프레임중 60프레임을 일정 주기로 빼 버리고
60프레임만을 뿌려준다. 즉 120프레임의 중간 중간에
일정한 간격으로 프레임을 하나씩 빼버리고 60프레임으로
맞추어 주는 것이다.

다시 한 번 정의해보자
수직동기화란?
출력기기(모니터의) Hz와 게임의 FPS를 정확하게 맞추어 주는 것이다.



헌데 수직동기화를 적용하면 액션 게임등의 화면의 전환이 급격한 게임에서
약간의 마우스 밀림이라던가 동작의 부자연스러움을 느낄 수 있다.

만약 실제로 연산되는 화면은 3번째 프레임인데 수직동기화로 인해
3프레임은 생략되었고 2프레임이 계속 화면에 남아있다면
우리는 1프레임 만큼 지연된 화면을 보고 있는 것이며 실제 게임의 진행과는
차이가 있는 것이다.
하지만 이 시간적 타이밍의 어긋남은 우리 눈과 머리가
인식하기에는 매우 짧은 순간이기 때문에 큰 영향을 미치지는 않는다.





 

                    < 수직동기화가 적용된 조낸 착한 화면 >


민감한 사람들은 어들가든 민감한 티를 낸다. 간혹 FPS(First Person Shoot(er) ) 게임과 관련된 포럼이나
커뮤니티 등의 사이트를 모니터링하다보면 LCD에서 FPS 못해먹겠다. 라는 류의 글을 심심치 않게 볼 수 있다.

즉 LCD에서는
1. 수직동기화 비활성화 - 화면이 좆같이 갈라져서 짜증나고 어지럽다.
2. 수직동기화 활성화    - 이 시발 샷타이밍이 이상하다. 나 분명히 쐈는데 총알이 밀려서 나간다. 썅!


이런식의 표현이 많다.
CRT에서는 어떨까?
앞서 설명했듯이 CRT에서 지원하는 Hz는 높다. 즉 CRT는 대략 90Hz이상으로 설정되어 사용하는 사용자들이
많기 때문에 게임에서 120FPS를 뿜어주어도 30프레임만 넘치기
때문에 화면에 큰 물결현상이 없으며
눈에도 뜨이지 않는다.

헌데 내가 설명하지 않은 수직동기화의 치명적인 단점이 한가지 남아있다.
수직동기화는 분명히 프레임을 인위적으로 줄이는 것이라고 했다.
헌데 이 프레임을 줄이는 간격을 정확한 비율과 시간적 타이밍으로 나누어 주어야 하기 때문에
좆같은 현상이 나타난다.

"120 FPS를 반으로 쪼개어 60FPS로 만들고 이것을 60Hz로 표현되는 모니터에 뿌려준다."
라는 정의에서 우리는 프레임이 반토막났음을 알 수 있다.

그렇다 수직동기화의 프레임 빼기는 반토막 밖에 되지 않는다.
즉 120프레임에서는 60프레임으로 60프레임에서는 30프레임이 나오는 것이다.

130 프레임이 나오는데 60Hz를 뿌려야할 때는 반토막 내고 남은 10프레임도 갖다 쳐 버린다.

아 시발 뭐 이런 기술이 있냐고? 그래서 좆같다는 거다. 이런 이유로 엔지니어들은 고민을 하게 되고
트리플 버퍼라는 개념을 만들었다. 이 것은 기존의 프레임을 반토막 내는 수직동기화의 약점을
완화하여 1/3프레임만 버릴 수도 있도록 개선되었다.
즉 초당 60프레임에서 30프레임을 보여주던
기존 방식에서 벗어나 무려 40프레임을 보여질 수 있도록 한 것이다. 그래도 좆같은 건 마찬가지다.

결론적으로 고사양 게임에서는 수직동기화 걸어버리면 좆나 끊기는 것이다.

다시 한 번 정리하겠다.
이 것만 기억하면 된다.

1. 수직동기화는 FPS(Frame Per Second)를 반토막 냄으로서 모니터의 Hz와 FPS의 수를 맞추는 것이다.
2. 수직동기화는 이 시발 FPS를 반토막 내기 때문에 내 모니터의 Hz보다 낮은 FPS를 보여주는
    고사양 게임에서는 좆도 끊기게 된다.
3. 수직동기화는 프레임을 골라내는 것이기 때문에 그만큼의 시간이 화면에서 지연되어 표현된다.
    1인칭 슈팅 게임같은 화면의 전환이 빠르고 용자들이 느끼는 감이 중요한 게임에서는
    뭔가 어색할 수 밖에 없다.
4. 트리플 버퍼라는 프레임의 반토막이 아닌 2/3를 표현할 수 있게 해주는 기술이 있지만 좆같기는 마찬가지다.
5. 1인칭 슈팅 게임에서의 LCD는 수직동기화를 하든 안하든 CRT에 비해서 좆같은 것은 마찬가지다.
6. 선택은 나 자신이 하는 것이다. 하지만 용자의 VGA가 구려서 프레임이 애초에 낮은 상태라면
    그냥 신경쓰지 마라

저작자 표시 비영리 변경 금지
Creative Commons License
Creative Commons License
Posted by Story
◀ PREV : [1] : ... [32] : [33] : [34] : [35] : [36] : [37] : [38] : [39] : [40] : ... [86] : NEXT ▶

카테고리

This is my story (86)
photo log (13)
diary (7)
keyboard warrior (1)
media (4)
game (37)
tip & tech (18)
etc (4)
webdev (2)

달력

«   2009/07   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
홈
홈태그방명록관리자글쓰기
total 88,590   today 10   yesterday 96