작성자 | Vexur | ||
---|---|---|---|
작성일 | 2010-08-17 12:26:15 KST | 조회 | 305 |
제목 |
수직동기화에 대한 오해
|
수직동기화란 단순히 모니터 주사율에 맞추어 계산된 장면을 전송하는 기술입니다.
그런데 왜 물결무늬가 사라지냐?
물결무늬가 일어나는 이유부터 알아보죠
기본적인 랜더링은 보통 이중버퍼링 구조입니다.
컴퓨터가 현재 그리는 버퍼와( 백 버퍼 )
다 그려진 장면 출력을 위해 대기하는 버퍼( 프론트 버퍼 )
이렇게 이중으로 구성되어 있습니다.
컴퓨터는 열심히 백 버퍼에 그림을 그리고, 다 그렸으면 프론트 버퍼에 넣어두죠.
그 프론트 버퍼의 그림을 그래픽 디바이스가 모니터로 전송하게되고, 그게 실제 영상이 됩니다.
물결무늬가 일어나는 원인은, 그래픽 디바이스가 프론트 버퍼의 그림을 가져가는 시점과
백 버퍼가 프론트 버퍼에 내용을 넣는 과정이 겹쳐서 생기는 현상입니다.
수직동기화로 이것이 해결되는 것은,
그래픽 디바이스가 프론트 버퍼의 내용을 얻어가기 전까지 백 버퍼의 내용이 프론트 버퍼에 전송되지 않습니다.
따라서 수직동기화가 활성화되면 물결무늬 현상은 사라지지만 모니터에 표현되는 프레임이 현재 시점이 아닌 이전 프레임이라는 단점이 있죠.
그 시간대가 10ms 단위라서 무시해도 무방하다고 생각하지만,
물결무늬에 대한 깔끔한 대처방안으로 나온게 삼중 버퍼링입니다.
백 버퍼와 프론트 버퍼 사이에 버퍼가 한단계 더 있는거죠.
결론적으로 수직동기화는 프론트 버퍼의 갱신을 모니터 주사율에 맞추어 동기화 시키는 기술입니다.
애초에 그래픽 디바이스는 모니터에 감당 불가능한 프레임을 전송할 수도 없을 뿐더러
모니터는 그런 방식으로 화면을 갱신하지 않습니다. 단순히 프론트 버퍼의 내용을 보여주는 것 뿐이죠.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
© PlayXP Inc. All Rights Reserved.