게임에서 vsync는 무엇을 의미합니까? 게임의 그래픽 설정: 어떤 영향을 미칩니까? 수직동기화 연결하기

게임에서 수직 동기화란 무엇입니까? 이 기능은 60Hz 주파수의 표준 LCD 모니터에서 게임을 올바르게 표시하는 역할을 합니다. 활성화하면 프레임 속도가 60Hz로 제한되고 화면에 중단이 표시되지 않습니다. 비활성화하면 프레임 속도가 증가하지만 동시에 화면이 찢어지는 효과가 있습니다.

V-sync는 게임에서 다소 논란의 여지가 있는 주제입니다.한편으로는 시각적인 편안함을 위해 게임 플레이표준 LCD 모니터가 있다고 가정하면 매우 필요한 것 같습니다.

덕분에 게임 중 화면에 오류가 표시되지 않고 화면이 안정적이며 간격이 없습니다. 단점은 프레임 속도가 60Hz로 제한되어 더 까다로운 플레이어가 입력 지연, 즉 마우스로 게임에서 이동할 때 약간의 지연을 경험할 수 있다는 것입니다(인공적으로 마우스 움직임을 부드럽게 하는 것과 동일할 수 있음).

수직 동기화를 비활성화하는 것도 장단점이 있습니다. 우선, 무제한 FPS 프레임 속도가 제공되어 언급된 입력 지연을 완전히 제거합니다. 게임용으로 편리합니다. 유형 카운터 스트라이크반응성과 정확성이 중요한 곳. 움직임과 조준은 매우 명확하고 역동적이며 마우스의 모든 움직임은 높은 정밀도로 발생합니다. 어떤 경우에는 더 많은 것을 얻을 수 있습니다. FPS 속도, V-Sync는 비디오 카드에 따라 하드웨어 성능을 약간 저하시킬 수 있습니다(차이는 약 3-5 FPS). 불행히도 단점은 수직 동기화가 없으면 화면이 찢어지는 효과가 있다는 것입니다. 게임에서 회전하거나 움직임을 변경할 때 이미지가 두세 개의 수평 부분으로 찢어지는 것을 알 수 있습니다.

V-Sync를 활성화 또는 비활성화하시겠습니까?

수직동기화가 필요한가요? 그것은 모두 우리의 개인적인 취향과 우리가 얻고자 하는 것에 달려 있습니다. 멀티플레이어 FPS 게임에서는 조준 정확도를 높이려면 수직 동기화를 끄는 것이 좋습니다. 화면 찢어짐 효과는 일반적으로 눈에 띄지 않으며 익숙해지면 눈치 채지 못할 것입니다.

차례로 스토리 게임 V-Sync를 안전하게 활성화할 수 있습니다. 여기서 높은 정확도는 그다지 중요하지 않습니다. 첫 번째 바이올린은 환경, 시각적 편안함에 의해 연주되므로 좋은 품질에 베팅해야 합니다.

수직 동기화는 일반적으로 게임의 그래픽 설정에서 켜거나 끌 수 있습니다. 그러나 거기에서 그러한 기능을 찾지 못하면 비디오 카드 설정에서 수동으로 수동으로 끌 수 있습니다. 모든 사람과 선택한 응용 프로그램에 대해서만 가능합니다.

NVIDIA 그래픽 카드의 수직 동기화

GeForce 그래픽 카드에서 이 기능은 Nvidia 제어판에 있습니다. 딸깍 하는 소리 마우스 오른쪽 버튼으로 클릭 Windows 10 바탕 화면에서 마우스를 클릭한 다음 Nvidia 제어판을 선택합니다.

사이드바에서 3D 설정 아래의 3D 설정 컨트롤 탭을 선택합니다. 사용 가능한 설정이 오른쪽에 표시됩니다.

설정은 전역 및 프로그램의 두 탭으로 나뉩니다. 첫 번째 탭에서 모든 게임에 대한 옵션을 설정할 수 있으며, 예를 들어 각 게임에서 수직 동기화를 활성화할지 비활성화할지 여부를 설정할 수 있습니다. 반면 두 번째 탭에서는 동일한 매개변수를 설정할 수 있지만 각 게임에 대해 개별적으로 개별적으로 설정할 수 있습니다.

전역 또는 프로그램 탭을 선택한 다음 목록에서 "수직 동기화" 옵션을 찾습니다. 옆에 드롭다운 필드가 있습니다. 수직 동기화를 강제로 끄거나 켜도록 선택합니다.

AMD 그래픽의 V-Sync

AMD 그래픽 카드의 경우 Nvidia와 완전히 동일하게 보입니다. 바탕 화면을 마우스 오른쪽 버튼으로 클릭한 다음 Panel Catalyst Control Center로 이동합니다.

그런 다음 왼쪽의 "게임" 탭을 열고 "3D 응용 프로그램 설정"을 선택합니다. 오른쪽에는 AMD Radeon 그래픽 설정 위치에서 강제로 활성화할 수 있는 사용 가능한 옵션 목록이 표시됩니다. "시스템 설정" 탭에 있을 때 모두를 선택합니다.

각 게임에 대해 개별적으로 매개변수를 개별적으로 설정해야 하는 경우 "추가" 버튼을 클릭하고 EXE 파일을 지정해야 합니다. 새 책갈피로 목록에 추가되며, 해당 책갈피로 전환하면 이 게임에 대해서만 매개변수를 설정할 수 있습니다.

추가된 애플리케이션 또는 시스템 매개변수(일반)가 있는 탭을 선택한 경우 목록에서 "수직 업데이트 대기" 옵션을 찾으십시오. 이 옵션을 강제로 활성화하거나 비활성화할 수 있는 선택 상자가 나타납니다.

통합 Intel HD 그래픽의 V-Sync

통합 Intel HD 그래픽 칩을 사용하는 경우 제어판도 사용할 수 있습니다. 바탕 화면을 마우스 오른쪽 버튼으로 클릭하거나 키보드 단축키 Ctrl+Alt+F12를 통해 사용할 수 있어야 합니다.

Intel 패널에서 설정 모드 탭 - 제어판 - 3D 그래픽으로 이동한 다음 사용자 설정으로 이동합니다.

여기에서 수직 동기화 수직 동기화가 있는 필드를 찾습니다. 값을 "사용"으로 설정하거나 "응용 프로그램 설정"으로 설정하여 강제로 활성화할 수 있습니다. 불행히도 Intel HD 카드 옵션에는 강제 비활성화 기능이 없습니다. V-Sync만 활성화할 수 있습니다. 비디오 카드에서 수직 동기화를 비활성화할 수 없기 때문에 이것은 게임 자체의 설정에서만 수행할 수 있습니다.

거의 모든 현대 게임그래픽 설정에서 "수직 동기화" 열을 볼 수 있습니다. 그리고 점점 더 많은 플레이어가 질문을 합니다. 이 동기화가 유용합니까?, 그 영향과 그것이 존재하는 이유, 다양한 플랫폼에서 사용하는 방법. 이 기사에서 알아보자.

수직 동기화 정보

수직동기화의 본질에 대한 설명으로 직접 넘어가기 전에 수직동기화 형성의 역사를 조금 살펴볼 필요가 있다. 나는 가능한 한 명확하게하려고 노력할 것입니다. 최초의 컴퓨터 모니터는 단일 프레임 스캔 신호로 제공되는 고정 이미지였습니다.

새로운 세대의 디스플레이가 등장하면서 해상도를 급격히 변경해야 하는 문제가 발생하여 여러 작동 모드가 필요했으며 이러한 디스플레이는 신호의 극성을 수직으로 동기하여 사용하여 그림을 표시했습니다.

필요한 VGA 해상도 더 미세 조정스위프하고 수평 및 수직으로 두 개의 신호를 받았습니다. 오늘날의 디스플레이에서 내장 컨트롤러는 스캔 설정을 담당합니다.

그러나 컨트롤러가 드라이버에 따라 필요한 프레임 수를 설정하면 설정된 해상도에 대해 수직 동기화가 필요한 이유는 무엇입니까? 그렇게 간단하지 않습니다. 비디오 카드를 생성하는 프레임 속도가 매우 높지만 모니터는 기술적인 한계로 인해 종종 상황이 발생합니다. 이 프레임 수를 올바르게 표시할 수 없습니다.모니터의 재생 빈도가 그래픽 카드의 재생 빈도보다 현저히 낮은 경우. 이것은 날카로운 이미지 움직임, 아티팩트 및 줄무늬로 이어집니다.

"트리플 버퍼링"이 활성화된 메모리 파일의 프레임을 표시할 시간이 없기 때문에 빠르게 교체되어 다음 프레임을 중첩합니다. 그리고 여기서 트리플 버퍼링 기술은 거의 효과가 없습니다.

수직동기화 기술 이러한 단점을 보완하기 위해 고안되었습니다..

그녀는 투표를 켠 채 모니터로 고개를 돌린다 표준 기능주파수와 프레임 속도를 업데이트하여 이미지가 업데이트되는 순간까지 2차 메모리의 프레임이 1차 메모리로 이동하는 것을 방지합니다.

수직동기화 연결하기

대부분의 게임에는 그래픽 설정에 직접 이 기능이 있습니다. 그러나 이러한 열이 없거나 해당 매개 변수에 대한 설정이 포함되지 않은 응용 프로그램의 그래픽으로 작업할 때 특정 결함이 관찰될 때 발생합니다.

각 비디오 카드의 설정에서 모든 응용 프로그램에 대해 수직 동기화 기술을 활성화하거나 선택적으로 활성화할 수 있습니다.

NVidia를 활성화하는 방법은 무엇입니까?

NVidia 카드를 사용한 대부분의 조작과 마찬가지로 NVidia 관리 콘솔을 통해 수행됩니다. 거기에 3D 매개변수 제어 그래프에 동기 펄스 매개변수가 있습니다.

켜짐 위치로 이동해야 합니다. 그러나 비디오 카드에 따라 순서가 다릅니다.

따라서 이전 비디오 카드에서는 수직 동기화 매개변수가 챕터에 있습니다. 전역 옵션동일한 3D 설정 컨트롤 상자에서

ATI의 비디오 카드

구성하려면 그래픽 카드의 제어 센터를 사용하십시오. 즉, Catalyst Control Center는 .NET Framework 1.1을 실행하고 있습니다. 없으면 제어 센터가 시작되지 않습니다. 하지만 걱정하지 마세요. 이러한 경우에는 클래식 제어판으로 작업하는 센터에 대한 대안이 있습니다.

설정에 액세스하려면 왼쪽 메뉴에 있는 3D 항목으로 이동합니다. 수직 새로 고침 대기 섹션이 있습니다. 처음에는 기본 수직 동기화 기술이 응용 프로그램 내에서 사용됩니다.

버튼을 왼쪽으로 움직이면 이 기능이 완전히 비활성화되고 오른쪽으로 움직이면 강제로 켜집니다. 기본 옵션은 여기 가장 합리적인, 게임 설정을 통해 직접 동기화를 구성할 수 있기 때문입니다.

합산

수직 동기화는 사진의 날카로운 움직임을 제거하는 데 도움이 되는 기능이며 경우에 따라 이미지의 아티팩트와 줄무늬를 제거할 수 있습니다. 그리고 이것은 모니터와 비디오 카드의 프레임 레이트가 일치하지 않을 때 수신된 프레임 레이트를 더블 버퍼링함으로써 달성됩니다.

V-sync는 요즘 대부분의 게임에 있습니다. 트리플 버퍼링과 거의 같은 방식으로 작동하지만 비용이 많이 듭니다. 훨씬 적은 자원, 이것이 게임 설정에서 트리플 버퍼링을 덜 자주 볼 수 있는 이유입니다.

수직 동기화를 사용하거나 사용하지 않도록 선택하여 사용자는 품질과 성능 중에서 선택할 수 있습니다. 이 기능을 켜면 사진이 더 부드러워지지만 초당 프레임 수가 줄어듭니다.

그것을 끄면 그는 얻는다 그러나 사진의 선명도와 느슨함에서 자유롭지는 않습니다. 특히 이것은 적용됩니다 강렬하고 자원 집약적인 장면, 수직 동기화 또는 삼중 버퍼링의 부족이 특히 눈에 띄는 경우.

많은 게임의 매개변수에 있는 이 신비한 그래프는 생각만큼 간단하지 않았습니다. 그리고 이제 그것을 사용할지 말지 선택은 게임에서 당신과 당신의 목표에만 남아 있습니다.

확실히 많은 팬이 컴퓨터 게임게임의 비디오 카드 설정에서 소위 "수직 동기화" 또는 VSync를 비활성화하라는 권장 사항에 직면했습니다.

많은 그래픽 컨트롤러 성능 테스트에서 테스트가 VSync를 비활성화한 상태에서 수행되었음을 강조합니다.
많은 "고급 전문가"가 이 기능을 비활성화하도록 조언하는 경우 이 기능은 무엇이며 왜 필요한가요?
수직 동기화의 의미를 이해하려면 역사에 대한 간략한 우회가 필요합니다.

최초의 컴퓨터 모니터는 고정된 해상도와 고정된 재생 빈도로 실행되었습니다.
EGA 모니터의 출현으로 수직을 따라 이미지 동기화 신호의 극성에 의해 설정된 두 가지 작동 모드에 의해 제공되는 서로 다른 해상도를 선택하는 것이 필요하게 되었습니다.

VGA 해상도 이상을 지원하는 모니터는 스위프 주파수를 미세 조정해야 합니다.
이를 위해 이미지를 수평 및 수직으로 동기화하는 두 개의 신호가 이미 사용되었습니다.
최신 모니터에서 특수 컨트롤러 칩은 설정된 해상도에 따라 스캔을 조정합니다.

모니터가 드라이버에서 설정한 모드에 따라 자동으로 조정될 수 있는 경우 비디오 카드 설정에 "수직 동기화" 항목이 저장되는 이유는 무엇입니까?
사실 비디오 카드가 초당 매우 많은 수의 프레임을 생성할 수 있다는 사실에도 불구하고 모니터는 이를 고품질로 표시할 수 없으며 그 결과 밴딩 및 "찢어진" 이미지와 같은 다양한 아티팩트가 나타납니다.

이를 피하기 위해 비디오 카드는 초당 프레임 수가 동기화되는 수직 스캔에 대한 모니터의 예비 폴링 모드(익숙한 fps)를 제공합니다.
즉, 수직 주파수가 85Hz인 경우 모든 게임에서 초당 프레임 수는 85를 초과하지 않습니다.

모니터의 수직 주사율은 이미지가 있는 화면이 1초에 재생되는 횟수를 나타냅니다.
음극선관 디스플레이의 경우 그래픽 가속기가 게임에서 "압박"하도록 허용하는 초당 프레임 수와 상관없이 새로 고침 빈도는 물리적으로 설정된 것보다 높을 수 없습니다.

LCD 모니터에서는 전체 화면의 물리적 새로 고침이 없습니다. 여기에서 개별 픽셀이 빛나거나 빛나지 않을 수 있습니다.
그러나 비디오 인터페이스를 통한 데이터 전송 기술은 프레임이 비디오 카드에서 모니터로 특정 속도로 전송된다는 것을 제공합니다.
따라서 어느 정도 관례에 따라 "스윕"이라는 개념을 LCD 디스플레이에 적용할 수 있습니다.

이미지 아티팩트는 어디에서 왔습니까?
모든 게임에서 초당 생성되는 프레임의 수는 그림의 복잡성에 따라 지속적으로 변경됩니다.
모니터의 재생 빈도는 일정하기 때문에 비디오 카드에서 전송한 fps와 모니터의 재생 빈도 사이의 비동기화는 이미지 왜곡으로 이어지며, 이는 여러 임의의 대역으로 분할되는 것처럼 보입니다. 하지 않습니다.

예를 들어, 모니터는 75Hz의 재생 빈도로 작동하고 게임의 비디오 카드는 초당 100프레임을 생성합니다.
즉, 그래픽 가속기는 모니터 새로 고침 시스템보다 약 3분의 1 빠릅니다.
한 화면을 업데이트하는 동안 카드는 1 프레임과 다음 프레임의 3분의 1을 생성합니다. 결과적으로 현재 프레임의 2/3가 디스플레이에 그려지고 세 번째 프레임은 다음 프레임의 세 번째 프레임으로 바뀝니다.

다음 업데이트 동안 카드는 프레임의 2/3와 다음 프레임의 2/3 등을 생성합니다.
모니터에서 3번의 스캔 주기 중 2번은 다른 프레임에서 이미지의 3분의 1을 관찰합니다. 즉, 사진이 부드러움을 잃고 "흔들림"이 나타납니다.
이 결함은 특히 동적 장면에서 또는 예를 들어 게임의 캐릭터가 주위를 둘러볼 때 두드러집니다.

그러나 비디오 카드가 초당 75개 이상의 프레임을 생성하는 것이 금지된 경우 75Hz의 수직 주파수로 디스플레이에 이미지가 표시되면 모든 것이 정상이라고 가정하는 것은 근본적으로 잘못된 것입니다.
사실은 소위 "이중 버퍼링"이라는 일반적인 경우 모니터의 프레임이 기본 프레임 버퍼(프론트 버퍼)에서 나오고 렌더링 자체가 보조 버퍼(백 버퍼)에서 수행된다는 것입니다. .

2차 버퍼가 가득 차면서 프레임이 1차 버퍼로 들어가지만, 버퍼 간 복사 작업에는 일정 시간이 걸리기 때문에 그 순간에 모니터 스캔이 업데이트되면 여전히 이미지 트위칭을 피할 수 없습니다.

수직 동기화는 이러한 문제를 해결합니다. 모니터는 새로 고침 빈도에 대해 폴링되고 이미지가 업데이트될 때까지 보조 버퍼에서 기본 버퍼로 프레임을 복사하는 것이 금지됩니다.
이 기술은 초당 프레임 속도가 수직 주파수를 초과할 때 효과적입니다.
그러나 프레임 속도가 재생 빈도 아래로 떨어지면 어떻게 될까요?
예를 들어 어떤 장면에서는 fps가 100에서 50으로 떨어집니다.

이 경우 다음이 발생합니다.
모니터의 이미지가 업데이트되고 첫 번째 프레임이 기본 버퍼에 복사되고 두 번째 프레임의 2/3가 보조 버퍼에서 "렌더링"된 다음 디스플레이의 이미지가 다시 업데이트됩니다.
이 때 비디오 카드는 여전히 1차 버퍼로 보낼 수 없는 두 번째 프레임 처리를 완료하고 이미지의 다음 업데이트는 여전히 1차 버퍼에 저장된 동일한 프레임으로 발생합니다.

그런 다음 이 모든 것이 반복되며 결과적으로 화면의 초당 프레임 속도가 스캔 주파수보다 2배 낮고 잠재적인 렌더링 속도보다 1/3이 낮은 상황이 발생합니다. "라고 표시한 다음 모니터를 사용하면 반대로 기본 버퍼에 저장된 프레임을 디스플레이가 다시 가져오고 보조 버퍼에 새 프레임을 계산할 공간이 생길 때까지 기다려야 합니다.

수직동기화와 더블버퍼링의 경우 초당 프레임 수가 스캐닝 주파수의 비율로 계산된 이산값 시퀀스 중 하나와 같아야 고품질 이미지를 얻을 수 있음이 밝혀졌습니다. 어떤 양의 정수로.
예를 들어 새로 고침 빈도가 60Hz인 경우 초당 프레임 수는 60 또는 30 또는 15 또는 12 또는 10 등이어야 합니다.

카드의 잠재적 기능으로 인해 초당 60개 미만 및 30개 이상의 프레임을 생성할 수 있는 경우 실제 렌더링 속도는 30fps로 떨어집니다.

번역 중... 번역 중국어(간체) 중국어(번체) 영어 프랑스어 독일어 이탈리아어 포르투갈어 러시아어 스페인어 터키어

유감스럽게도 지금은 이 정보를 번역할 수 없습니다. 나중에 다시 시도해 주세요.

간단한 알고리즘을 사용하여 이미지를 디스플레이 재생 빈도와 동기화하고 비디오 재생 품질을 개선하는 방법을 알아봅니다.

소개

"디지털 홈"에 대한 우리의 비전은 점차 현실이 되고 있습니다. 최근 몇 년 동안 "디지털 홈"을 위한 점점 더 많은 장치가 상용화되었습니다. 제공되는 전자 제품의 범위는 음악 및 비디오 방송을 지원하는 멀티미디어 셋톱 박스에서 기존 PC 케이스의 본격적인 엔터테인먼트 시스템에 이르기까지 매우 광범위합니다.

홈 미디어 센터는 TV 쇼를 시청 및 녹화하고 디지털 사진과 음악 등을 저장 및 재생할 수 있도록 하는 컴퓨터 매장 가격 목록의 표준 항목이 되었습니다. 또한 일부 공급업체는 사용자가 자신의 PC를 홈 미디어 센터로 전환할 수 있는 특수 키트를 제공합니다.

불행히도 이러한 미디어 센터는 항상 고품질 비디오 재생을 지원하지 않습니다. 불충분한 비디오 품질은 일반적으로 스트리밍 콘텐츠의 잘못된 버퍼링 및 렌더링, 인터레이스 비디오 처리 시 디인터레이스 알고리즘 부족, 비디오-오디오 스트림의 잘못된 동기화와 같은 요인으로 인해 발생합니다. 이러한 문제의 대부분은 잘 연구되었으며 제조업체에서 충분히 고려한 솔루션이 있습니다. 그러나 비디오를 볼 때 경미하지만 여전히 눈에 띄는 왜곡으로 이어질 수 있는 덜 알려져 있고 덜 명백한 또 다른 문제가 있습니다. 우리 기사는이 문제에 대한 자세한 설명을 제공하고 해결 방법 중 하나를 고려합니다.

홈 미디어 센터의 판매가 증가함에 따라 점점 더 많은 소비자들이 PC로 TV를 시청하고 있습니다. 현재 아마추어 마니아들의 수요가 많은 이 세그먼트가 확대되면서 고화질 영상에 대한 수요도 늘어날 전망이다.

컴퓨터에서 비디오 재생 품질을 향상시킬 수 있는 많은 기술이 있으며 많은 비디오 소프트웨어 제조업체에서 이를 성공적으로 사용했습니다. 동시에 때로는 비디오 재생 소프트웨어는 이를 고려하고 비디오가 디스플레이의 재생 빈도와 동기화되었는지 확인해야 합니다.. 사실 TV는 방송국에서 나오는 영상 신호와 동기화하기 위해 처음에 제공됩니다. TV와 달리 컴퓨터 모니터는 그래픽 어댑터에 의해 설정되고 비디오 신호와 아무 관련이 없는 고정된 속도로 화면을 새로 고칩니다. 비디오가 컴퓨터 디스플레이와 올바르게 동기화되었는지 확인하려는 경우 이 중요한 차이로 인해 많은 문제가 발생할 수 있습니다. 아래에서 우리는 노력할 것입니다 상세 설명이 문제를 해결하고 솔루션을 제안합니다. 그러나 그 전에 이 기사에서 논의할 몇 가지 기본 개념을 독자에게 소개하고 싶습니다.

디스플레이 새로 고침 주기

PC 화면의 재생 빈도(화면 재생 빈도)는 그래픽 어댑터(비디오 카드)의 빈도와 동기화됩니다. 비디오 카드와 모니터가 60Hz의 주파수를 지원할 때 가장 일반적인 예를 고려하십시오. 이 조합은 모니터가 비디오 카드에서 나오는 60Hz 신호와 동기화된다는 사실 때문에 가능합니다. 실제로 모니터는 그래픽 어댑터의 출력 주파수에 약간의 편차가 있는 경우에도 동기화를 유지합니다(예: 표준 60Hz 대신 60.06Hz).

새로 고침 주기 동안 화면 이미지는 디스플레이 버퍼(그래픽 어댑터 주소 지정 가능 메모리)에서 다시 그려집니다. 디스플레이의 각 수평선은 비디오 메모리 버퍼에 포함된 새로운 데이터에 따라 순차적으로 업데이트됩니다. 업데이트 이 순간타임 라인을 스캔 라인이라고 합니다. 60Hz 그래픽 어댑터의 경우 화면 새로 고침 프로세스가 초당 60회 발생하므로 PC 모니터의 이미지도 초당 60회 업데이트됩니다.

그림 1 - 디스플레이 업데이트

이미지 찢어짐 아티팩트

균일하지 않은 그래픽 버퍼 새로 고침의 잠재적인 문제에 유의하십시오. 모니터의 이미지가 아직 완전히 그려지지 않았을 때(새로 고침 주기가 완료되지 않은 경우) 비디오 메모리 버퍼의 내용이 변경된 경우 스캔 라인 다음의 새 이미지의 일부만 표시됩니다. 화면에서 (그림. 쌀. 2). 이 이미지 아티팩트가 화면 상단에 이전 이미지를 표시하고 하단에 새 이미지를 표시하는 것을 티어링(tearing)이라고 합니다. 사실, 이 용어는 결과 이미지가 반으로 "찢어진" 것처럼 보이기 때문에 매우 설명적입니다.

그림 2 - 이미지 "갭"의 인공물

팀 플립

"눈물"을 방지하는 한 가지 방법은 비디오 메모리의 내용 업데이트가 발생하는지 확인하는 것입니다. 이후디스플레이 새로 고침 주기가 종료되는 방법 및 그것 앞에다음 주기가 시작될 때. 즉, 역방향 스위프 중에 업데이트가 발생해야 합니다. 그러나 이 방법을 사용하려면 소프트웨어에서 해당 변경이 필요하므로 이미지 변경 순서를 충분히 정확하게 계산해야 합니다.

이러한 이유로 버퍼 스위칭 동기화 알고리즘(Flip)이 제안되었다. Flip 명령은 본질적으로 매우 간단합니다. 프로그램이 화면 새로 고침 주기 동안 언제든지 이미지를 업데이트할 수 있도록 하지만 그 결과는 현재 주기가 완료될 때까지 실제로 비디오 메모리로 전송되지 않습니다. 따라서 Flip 명령을 실행한 후 간격으로 모니터의 이미지 업데이트가 발생합니다. 버퍼 동기화 방법을 사용하면 Flip 명령이 각 새로 고침 주기에 대해 완전한 새 이미지가 준비되도록 하기 때문에 이미지의 "눈물"이 제거됩니다(아래 참조). 쌀. 삼). 그러나 다음 섹션에서는 Flip 명령만 사용한다고 해서 모든 문제가 해결된다는 보장이 없음을 보여드리겠습니다.

그림 3 - 뒤집기 명령 시퀀스

잠재적인 문제

동기화 알고리즘을 사용하면 큰 이점이 있고 티어링 아티팩트를 제거하는 데 도움이 되지만 한 가지 중요한 문제가 남아 있습니다.

Flip 명령을 사용하면 비디오에 대한 소프트웨어 렌더링 조건이 변경됩니다. Flip을 실행하려면 소프트웨어가 특정 프레임 속도에 따라 프레임 버퍼 업데이트 간격(프레임 속도)을 조정해야 합니다. 프레임을 동기화할 수 있는 유일한 클록 속도는 디스플레이 새로 고침 속도(또는 여러 개)입니다. 다시 말해, 새 프레임은 새로 고침 주기가 시작될 때만 표시될 수 있습니다. 실제로 프레임 간격은 디스플레이의 새로 고침 빈도와 관련이 있습니다.

그림 4 - 프레임 속도 및 디스플레이 주파수 불일치

이 사실은 디스플레이의 재생 빈도가 재생 중인 콘텐츠의 프레임 속도와 동일하지 않거나 그 배수가 아닌 경우 디스플레이의 콘텐츠를 완전히 재생할 수 없음을 의미합니다. 에 쌀. 네이 문제의 특별한 경우가 표시됩니다. 이 시나리오에서 콘텐츠 프레임 속도는 디스플레이 새로 고침 속도보다 느립니다. 이 두 주파수 사이의 위상 이동으로 인해 두 프레임에 대한 Flip 명령 간격은 결국 전체 새로 고침 주기 동안 늘어납니다(프레임 3 및 4의 타이밍 참고). 결과적으로 프레임 3은 필요한 것보다 거의 두 배 길게 표시됩니다. 따라서 항상 가능한 것은 아니지만 디스플레이의 프레임 속도와 재생 빈도를 일치시키려고 노력해야 합니다.

고려 중인 상황은 프레임 속도와 디스플레이의 재생 빈도 간의 차이가 작은 경우에만 악화됩니다. 프레임 시간이 업데이트 주기 간격에 가까울 때 소프트웨어 타이머 계산의 작은 부정확성으로도 인해 여러 개의 연속 Flip 명령이 업데이트 시작과 관련하여 비틀거릴 수 있습니다. 즉, 일부 Flip 명령은 너무 일찍 실행되고 일부는 너무 늦게 실행되어 프레임이 "중복"되고 "삭제"됩니다. 이 사례는 쌀. 5– 타이머가 (불규칙한 간격으로) 올바르게 작동하지 않아 결과적으로 프레임 2와 4가 표시되지 않고 프레임 3과 5가 두 번 표시됩니다.

그림 5 - 타이머 실패 시 Flip을 사용한 결과

콘텐츠의 프레임 레이트와 디스플레이의 재생 빈도가 동일한 경우에도 이러한 현상이 발생할 수 있습니다. 분명히 타이머와 Flip 명령만 사용하는 것만으로는 고품질 비디오 재생을 보장할 수 없습니다. 다음 섹션에서 설명하는 것처럼 Flip 명령이 올바르게 실행되려면 소프트웨어가 디스플레이 새로 고침 주기와 스마트 동기화를 유지해야 합니다.

타이밍 플립 명령

위에서 언급했듯이 Flip 명령을 사용하면 비디오 프레임을 렌더링할 때 화면 새로 고침 주기를 고려할 수 있습니다. 새로 전송된 각 프레임은 하나의 완전한 디스플레이 새로 고침 주기 동안만 표시됩니다. 따라서 Flip 명령을 사용할 때 소프트웨어는 프레임의 출력을 최적으로 동기화하기 위해 각 프레임이 표시되어야 하는 시점을 정확하게 계산할 뿐만 아니라 특정 새로 고침 주기를 결정해야 합니다.

해당 프레임 새로 고침 간격이 시작되기 직전, 새로 고침 주기의 맨 처음에 Flip 명령을 호출하는 것이 가장 좋습니다( 쌀. 삼). 이것은 해당 업데이트 주기가 시작되기 전에 실제로 명령을 실행할 가장 높은 확률을 제공하고 프레임이 적시에 출력되도록 합니다. 비디오 프레임 속도와 디스플레이 재생 빈도가 일치하지 않는 경우 Flip의 프레임 재생 주기 최적화는 허용 가능한 비디오 품질을 제공하기에 충분하지 않습니다. 이러한 문제를 해결하는 콘텐츠 프레임을 구성하거나 수정하는 몇 가지 방법이 있지만 이는 이 발행물의 범위를 벗어납니다.

약간 운영체제애플리케이션이 디스플레이의 새로 고침 주기와 동기화를 유지할 수 있는 프로그래밍 인터페이스를 제공합니다. 특히 Microsoft DirectX 9.0 환경에는 우리의 경우에 매우 유용할 수 있는 여러 절차가 포함되어 있습니다. 다음으로, 조사 중인 문제를 해결하기 위한 예시적인 방법으로 DirectX 표준 절차를 살펴보겠습니다. 독자는 이 예제를 사용하여 제안된 방법을 탐색하고 다른 운영 체제에서 유사한 솔루션을 찾을 수 있습니다.

WaitForVerticalBlank()다음 업데이트 주기가 시작될 때까지 인터페이스에 액세스하는 스레드를 차단하는 DirectDraw 라이브러리(IDirectDraw 인터페이스 내)의 표준 절차입니다. 이 절차는 동기화에 사용할 수 있지만 액세스하는 데 시간이 많이 걸리므로 한 번 또는 상당한 간격으로 수행해야 합니다. 그러나 이 절차는 업데이트 주기로 초기 동기화를 수행할 때 유용합니다.

GetScanLine()디스플레이에서 현재 업데이트 중인 스캔라인에 대한 정보를 얻는 데 사용할 수 있는 표준 절차입니다. 총 라인 수와 현재 스캔 라인을 안다면 디스플레이 리프레시 주기의 상태를 판단하는 것은 어렵지 않다. 예를 들어, 디스플레이 라인의 총 수가 1024이고 절차가 GetScanLine() 100을 반환하면 현재 새로 고침 주기는 현재 100에서 1024 사이이며 약 10%가 완료된 것입니다. 신청 GetScanLine()응용 프로그램이 업데이트 루프의 상태를 모니터링하고 이를 기반으로 다음 렌더링된 프레임을 바인딩할 주기를 결정하고 원하는 버퍼 전환 시간에 대한 타이머를 설정할 수 있습니다. 다음은 예제 알고리즘입니다.

그림 6

프레임 변경 시간은 새 이미지 프레임 계산뿐만 아니라 화면 재생률도 고려하여 선택됩니다. 프레임은 디스플레이를 새로 고칠 때만 화면에 표시되므로 각 프레임이 올바른 새로 고침 주기를 "적중"하는지 확인해야 합니다. 따라서 이상적으로는 이미지 프레이밍이 화면의 재생 빈도와 정확히 일치해야 합니다. 이 경우 각 프레임은 적절한 시간에 디스플레이에 그려집니다.

녹화된 콘텐츠에 대한 대체 솔루션

우리가 논의하는 문제는 라이브 방송의 경우와 녹화된 비디오를 재생할 때 모두에서 모든 비디오 재생 시나리오에 적용됩니다. 그러나 후자의 경우 대체 솔루션에 의지할 수 있습니다. 콘텐츠의 프레임 속도와 디스플레이의 재생 빈도의 차이가 작은 경우 품질 저하 없이 화면 재생 빈도와 일치하도록 비디오의 프레임 속도를 조정할 수 있습니다(및 동일한 방식으로 오디오 스트림 조정). 내용의. 예를 들어 모니터에서 초당 59.94 프레임(Bob 디인터레이스) 표준 화질 TV 신호를 60Hz로 가정해 보겠습니다. 비디오 및 오디오 재생을 초당 최대 60프레임까지 가속화하여 프레임 속도가 화면의 새로 고침 간격과 일치하고 이미지 아티팩트를 유발하지 않도록 할 수 있습니다.

요약

이 출판물은 이미지 동기화 방법, 특히 Flip 명령을 사용하여 이미지 찢어짐 아티팩트를 방지하는 방법에 대해 설명합니다. 또한 이 기사에서는 Flip 명령이 디스플레이 새로 고침 주기와의 긴밀한 동기화로 인해 문제를 일으키는 경우를 다룹니다. 적절한 프레임 타이밍과 Flip 명령을 사용하면 프레임 시간과 간격이 소프트웨어 응용 프로그램에서 예상하는 것과 다를 수 있습니다. 이 논문은 Flip 명령을 사용하는 올바른 방법은 Flip 동기화를 화면 재생률과 결합하고 후속 출력을 고려하여 이미지 계산 주기를 최적화하는 것이라고 결론지었습니다. 따라서 플립 간격은 소프트웨어에서 조정할 수 있습니다. 최고의 품질콘텐츠의 프레임 속도가 디스플레이의 재생 빈도와 일치할 때 비디오가 달성됩니다. 그러나 실제로 이것이 항상 달성 가능한 것은 아닙니다. 이 기사에서 설명하는 알고리즘은 이미지 아티팩트를 최소화하는 데 도움이 됩니다.

현대 게임은 그림을 향상시키는 그래픽 효과와 기술을 점점 더 많이 사용합니다. 동시에 개발자는 일반적으로 자신이 하는 일을 정확히 설명하려고 애쓰지 않습니다. 가장 생산적인 컴퓨터를 사용할 수 없는 경우 일부 기능을 희생해야 합니다. 그래픽에 미치는 영향을 최소화하면서 PC 리소스를 확보하는 방법을 더 잘 이해하기 위해 가장 일반적인 그래픽 옵션이 무엇을 의미하는지 고려해 보겠습니다.

이방성 필터링

텍스처가 원래 크기가 아닌 모니터에 표시되면 추가 픽셀을 삽입하거나 반대로 추가 픽셀을 제거해야 합니다. 이것은 필터링이라는 기술을 사용하여 수행됩니다.

쌍선형 필터링은 가장 간단한 알고리즘이며 컴퓨팅 성능이 덜 필요하지만 최악의 결과도 제공합니다. Trilinear는 명확성을 추가하지만 여전히 아티팩트를 생성합니다. 이방성 필터링은 카메라에 대해 강하게 기울어진 물체에서 눈에 띄는 왜곡을 제거하는 가장 진보된 방법으로 간주됩니다. 앞의 두 가지 방법과 달리 앨리어싱 효과를 성공적으로 제거합니다(텍스처의 일부가 다른 부분보다 더 흐려지고 그 사이의 경계가 명확하게 보일 때). 쌍선형 또는 삼선형 필터링을 사용할 때 거리가 멀어질수록 텍스처가 점점 흐려지는 반면 등방성 필터링은 이러한 단점이 없습니다.

처리 중인 데이터의 양을 고려할 때(씬에 고해상도 32비트 텍스처가 많이 있을 수 있음) 등방성 필터링은 특히 메모리 대역폭을 요구합니다. 현재 모든 곳에서 사용되는 텍스처 압축으로 인해 주로 트래픽을 줄일 수 있습니다. 이전에는 덜 자주 실행되고 비디오 메모리의 대역폭이 훨씬 낮았을 때 등방성 필터링은 프레임 수를 크게 줄였습니다. 최신 비디오 카드에서는 fps에 거의 영향을 미치지 않습니다.

이방성 필터링에는 필터 계수(2x, 4x, 8x, 16x)의 한 가지 설정만 있습니다. 높을수록 질감이 더 선명하고 자연스러워 보입니다. 일반적으로 값이 높으면 작은 아티팩트가 기울어진 텍스처의 가장 바깥쪽 픽셀에만 표시됩니다. 4x와 8x의 값은 일반적으로 시각적 왜곡의 가장 큰 부분을 제거하기에 충분합니다. 흥미롭게도 8x에서 16x로 이동하면 이전에 필터링되지 않은 소수의 픽셀만 추가 처리가 필요하기 때문에 이론상으로도 성능 저하가 상당히 작습니다.

셰이더

셰이더는 조명 변경, 텍스처 적용, 후처리 추가 및 기타 효과와 같이 3D 장면에서 특정 조작을 수행할 수 있는 작은 프로그램입니다.

셰이더는 세 가지 유형으로 나뉩니다. 정점(Vertex Shader)은 좌표로 작동하고 기하학적(Geometry Shader)은 개별 정점뿐만 아니라 전체를 처리할 수 있습니다. 기하학적 인물, 최대 6개의 정점으로 구성된 픽셀(픽셀 셰이더)은 개별 픽셀 및 해당 매개변수와 함께 작동합니다.

셰이더는 주로 새로운 효과를 만드는 데 사용됩니다. 그것들 없이는 개발자가 게임에서 사용할 수 있는 작업 집합이 매우 제한적입니다. 즉, 셰이더를 추가함으로써 기본적으로 비디오 카드에 포함되지 않은 새로운 효과를 얻을 수 있게 되었습니다.

셰이더는 병렬로 매우 생산적으로 작동하기 때문에 최신 그래픽 어댑터에는 셰이더라고도 하는 스트림 프로세서가 많이 있습니다. 예를 들어 GeForce GTX 580에는 512개가 있습니다.

시차 매핑

시차 매핑은 텍스처를 엠보싱하는 데 사용되는 잘 알려진 범프 매핑 기술의 수정된 버전입니다. 시차 매핑은 일반적인 의미의 3D 개체를 생성하지 않습니다. 예를 들어 게임 장면에서 바닥이나 벽은 거칠게 보이지만 실제로는 완전히 평평합니다. 여기서 릴리프 효과는 텍스처 조작을 통해서만 얻을 수 있습니다.

원본 개체는 평평하지 않아도 됩니다. 이 방법은 다른 용도로 작동합니다. 게임 아이템단, 표면 높이가 원활하게 변하는 경우에만 사용하는 것이 바람직합니다. 날카로운 방울이 잘못 처리되고 개체에 아티팩트가 나타납니다.

시차 매핑은 컴퓨터의 컴퓨팅 리소스를 크게 절약합니다. 왜냐하면 이러한 상세한 3D 구조를 가진 유사한 개체를 사용할 때 비디오 어댑터의 성능은 장면을 실시간으로 렌더링하기에 충분하지 않기 때문입니다.

이 효과는 돌 포장, 벽, 벽돌 및 타일에 가장 자주 적용됩니다.

안티 앨리어싱

DirectX 8이 등장하기 전에는 FSAA(Full-Scene Anti-Aliasing)라고도 하는 SSAA(SuperSampling Anti-Aliasing)를 사용하여 게임의 앤티 앨리어싱을 수행했습니다. 이를 사용하면 성능이 크게 저하되어 DX8이 출시되면서 즉시 폐기되고 MSAA(Multisample Anti-Aliasing)로 대체되었습니다. 이 방법이 더 나쁜 결과를 낳았음에도 불구하고 이전 방법보다 훨씬 더 생산적이었습니다. 그 이후로 CSAA와 같은 고급 알고리즘이 등장했습니다.

지난 몇 년 동안 비디오 카드의 성능이 크게 향상되었다는 점을 감안할 때 AMD와 NVIDIA는 모두 가속기에 SSAA 기술에 대한 지원을 반환했습니다. 다만, 프레임/초가 매우 적어서 현재도 현대 게임에서는 사용이 불가능할 것입니다. SSAA는 이전 연도의 프로젝트 또는 현재 프로젝트에서만 유효하지만 다른 그래픽 매개변수에 대해서는 적절한 설정이 필요합니다. AMD는 DX9 게임에 대해서만 SSAA 지원을 구현했지만 NVIDIA에서 SSAA는 DX10 및 DX11 모드에서도 작동합니다.

평활화의 원리는 매우 간단합니다. 프레임이 화면에 표시되기 전에 특정 정보가 기본 해상도가 아닌 2의 배수로 증가하여 계산됩니다. 그런 다음 결과가 필요한 크기로 줄어들고 물체의 가장자리를 따라 "사다리"가 덜 눈에 띄게됩니다. 원본 이미지와 평활화 계수(2x, 4x, 8x, 16x, 32x)가 높을수록 모델에 적용되는 단계가 줄어듭니다. MSAA는 FSAA와 달리 개체의 가장자리만 매끄럽게 만들어 그래픽 카드 리소스를 크게 절약하지만 이 기술은 다각형 내부에 아티팩트를 남길 수 있습니다.

이전에는 앤티 앨리어싱이 게임에서 항상 fps를 크게 감소시켰지만 이제는 프레임 수에 약간의 영향을 미치고 때로는 전혀 영향을 주지 않습니다.

모자이크 세공

컴퓨터 모델에서 테셀레이션을 사용하여 다각형의 수를 임의의 횟수만큼 증가시킵니다. 이를 위해 각 폴리곤은 원래 표면과 거의 동일한 위치에 있는 여러 개의 새로운 폴리곤으로 분할됩니다. 이 방법을 사용하면 간단한 3D 개체의 디테일을 쉽게 높일 수 있습니다. 그러나 이 경우 컴퓨터의 부하도 증가하고 경우에 따라 작은 아티팩트도 배제할 수 없습니다.

언뜻 보면 테셀레이션은 시차 매핑과 혼동될 수 있습니다. 이러한 효과는 완전히 다르지만 테셀레이션은 단순히 릴리프를 시뮬레이션하는 것이 아니라 실제로 개체의 기하학적 모양을 변경하기 때문입니다. 또한 거의 모든 개체에 사용할 수 있지만 Parallax 매핑의 사용은 매우 제한적입니다.

테셀레이션 기술은 80년대부터 영화에서 알려졌지만, 최근에야 게임에서, 아니 오히려 그래픽 가속기가 마침내 실시간으로 수행할 수 있는 필요한 성능 수준에 도달한 이후에야 지원되기 시작했습니다.

게임에서 테셀레이션을 사용하려면 DirectX 11을 지원하는 그래픽 카드가 필요합니다.

수직동기화

V-Sync는 게임 프레임을 모니터의 수직 재생 빈도와 동기화하는 것입니다. 그 본질은 그림이 업데이트되는 순간 완전히 계산된 게임 프레임이 화면에 표시된다는 사실에 있습니다. 다음 프레임(이미 준비된 경우)도 이전 프레임의 출력이 끝나고 다음 프레임이 시작되기 전에 나타나야 합니다.

모니터 새로 고침 빈도가 60Hz이고 비디오 카드가 최소한 동일한 수의 프레임으로 3D 장면을 렌더링하는 경우 각 모니터 새로 고침은 새 프레임을 표시합니다. 즉, 16.66ms 간격으로 사용자는 화면에서 게임 장면의 전체 업데이트를 볼 수 있습니다.

수직 동기화가 활성화되면 게임의 fps가 모니터의 수직 재생 빈도를 초과할 수 없다는 점을 이해해야 합니다. 프레임 수가 이 값보다 낮으면(이 경우 60Hz 미만) 성능 손실을 피하기 위해 미리 프레임을 계산하여 3개의 개별 버퍼에 저장하는 트리플 버퍼링을 활성화해야 합니다. , 더 자주 화면에 보낼 수 있습니다.

수직 동기화의 주요 작업은 디스플레이의 하단이 한 프레임으로 채워지고 상단이 이미 다른 프레임으로 채워져 이전 프레임에 비해 이동된 경우 발생하는 이동된 프레임의 영향을 제거하는 것입니다.

후처리

이것은 최종 그림의 품질을 향상시키기 위해 완전히 렌더링된 3D 장면(즉, 2차원 이미지)의 이미 완료된 프레임에 적용되는 모든 효과의 일반적인 이름입니다. 후처리는 픽셀 셰이더를 사용하며 추가 효과에 전체 장면에 대한 완전한 정보가 필요한 경우에 사용됩니다. 개별 3D 개체와 별개로 이러한 기술은 프레임에 아티팩트가 나타나지 않으면 적용할 수 없습니다.

하이 다이내믹 레인지(HDR)

조명이 대조되는 게임 장면에서 자주 사용되는 효과입니다. 화면의 한 영역은 매우 밝고 다른 영역은 매우 어두우면 각 영역의 많은 디테일이 손실되어 단조롭게 보입니다. HDR은 프레임에 더 많은 계조를 추가하고 장면을 자세히 표현할 수 있습니다. 이를 사용하려면 일반적으로 표준 24비트 정밀도가 제공할 수 있는 것보다 더 넓은 범위의 음영으로 작업해야 합니다. 사전 계산은 향상된 정확도(64 또는 96비트)로 발생하며 최종 단계에서만 이미지가 24비트로 조정됩니다.

HDR은 게임 속 영웅이 조명이 밝은 표면에 어두운 터널을 떠날 때 시각 적응 효과를 구현하는 데 자주 사용됩니다.

Bloom은 종종 HDR과 함께 사용되며 상당히 가까운 관계인 Glow도 있습니다. 이것이 이 세 가지 기술이 종종 혼동되는 이유입니다.

Bloom은 기존 카메라로 매우 밝은 장면을 촬영할 때 볼 수 있는 효과를 시뮬레이션합니다. 결과 이미지에서 강렬한 빛은 필요한 것보다 더 많은 양을 차지하는 것처럼 보이며 물체 뒤에 있더라도 물체 위로 "올라갑니다". 블룸 사용 시 물체의 테두리에 컬러 라인 형태의 추가 아티팩트가 나타날 수 있습니다.

필름 그레인

그레인은 신호가 불량한 아날로그 TV, 오래된 자기 비디오 카세트 또는 사진(특히 저조도에서 촬영한 디지털 이미지)에서 발생하는 아티팩트입니다. 플레이어는 종종 연결을 끊습니다. 이 효과, 그림을 어느 정도 망치고 개선하지 않기 때문입니다. 이것을 이해하기 위해 실행할 수 있습니다 매스 이펙트각 모드에서. 예를 들어 일부 "공포 영화"에서 사일런트 힐, 오히려 화면의 노이즈가 분위기를 더한다.

모션 블러

모션 블러 - 카메라를 빠르게 움직일 때 이미지가 흐려지는 효과. 장면에 더 많은 역동성과 속도를 부여해야 할 때 성공적으로 사용할 수 있으므로 특히 수요가 많습니다. 레이싱 게임. 저격수에서 블러 사용이 항상 명확하게 인식되는 것은 아닙니다. 모션 블러를 적절하게 적용하면 화면에서 일어나는 일에 영화 같은 품질을 더할 수 있습니다.

효과는 또한 필요한 경우 베일에 도움이 될 것입니다. 낮은 빈도프레임을 변경하고 게임 플레이에 부드러움을 추가하십시오.

앰비언트 오클루전은 빛을 흡수하고 반사하는 고유한 특성을 가진 근처에 있는 다른 개체의 존재를 고려하여 개체에 보다 사실적인 조명을 만들어 장면에 사실감을 추가하는 데 사용되는 기술입니다.

스크린 공간 앰비언트 오클루전은 앰비언트 오클루전의 수정된 버전이며 간접 조명 및 음영도 시뮬레이션합니다. SSAO의 등장은 현재 GPU 성능 수준에서 Ambient Occlusion을 사용하여 장면을 실시간으로 렌더링할 수 없었기 때문입니다. SSAO의 성능을 높이려면 더 낮은 품질로 돈을 지불해야 하지만, 그것만으로도 사진의 리얼리즘을 향상시키기에 충분합니다.

SSAO는 단순화된 체계에 따라 작동하지만 많은 장점이 있습니다. 이 방법은 장면의 복잡성에 의존하지 않고 , 동적 장면에서 작동할 수 있으며 프레임의 사전 처리가 필요하지 않으며 CPU 리소스를 사용하지 않고 그래픽 어댑터만 로드합니다.

셀 셰이딩

2000년부터 셀 셰이딩 효과가 있는 게임이 만들어졌고, 먼저 콘솔에 등장했다. PC에서 이 기술은 센세이셔널한 슈팅 게임 XIII가 출시된 지 불과 몇 년 만에 인기를 얻었습니다. Cel shading을 사용하면 각 프레임이 거의 손으로 그린 ​​그림이나 어린이 만화의 한 조각과 같습니다.

만화는 비슷한 스타일로 만들어지기 때문에 관련 게임에서 자주 사용되는 기법입니다. 알려진 최신 릴리스 중에서 Cel shading이 육안으로 보이는 Borderlands 슈팅 게임의 이름을 지정할 수 있습니다.

이 기술의 특징은 제한된 색상 세트를 사용하고 부드러운 그라디언트가 없다는 것입니다. 효과의 이름은 Cel(Celluloid), 즉 애니메이션 필름이 그려지는 투명한 재료(필름)에서 따온 것입니다.

피사계 심도

피사계 심도는 공간의 근거리와 원거리 사이의 거리로, 그 안에서 모든 물체에 초점이 맞춰지고 나머지 장면은 흐려집니다.

어느 정도 피사계 심도는 눈 앞에 가까운 물체에 초점을 맞추는 것만으로도 관찰할 수 있습니다. 그 뒤에 있는 모든 것이 흐려질 것입니다. 반대의 경우도 마찬가지입니다. 멀리 있는 물체에 초점을 맞추면 그 앞에 있는 모든 것이 흐릿하게 나타납니다.

일부 사진에서 피사계 심도의 영향을 비대 형태로 볼 수 있습니다. 3D 장면에서 시뮬레이션하려고 자주 시도하는 것은 이 정도의 흐림입니다.

피사계 심도를 사용하는 게임에서 게이머는 일반적으로 더 강한 존재감을 가지고 있습니다. 예를 들어, 풀이나 덤불 사이로 어딘가를 바라보면 초점이 맞춰진 장면의 작은 부분만 볼 수 있어 존재의 환상을 만듭니다.

성능 영향

특정 옵션의 포함이 성능에 어떤 영향을 미치는지 알아보기 위해 Heaven DX11 Benchmark 2.5 게임 벤치마크를 사용했습니다. 모든 테스트는 1280x800 픽셀의 Intel Core2 Duo e6300, GeForce GTX460 시스템에서 수행되었습니다(해상도가 1680x1050인 수직 동기화 제외).

이미 언급했듯이 이방성 필터링은 프레임 수에 거의 영향을 미치지 않습니다. 비활성화된 이방성과 16x의 차이는 2프레임에 불과하므로 항상 최대값으로 설정하는 것이 좋습니다.

Heaven Benchmark의 앤티 앨리어싱은 특히 가장 어려운 8x 모드에서 예상보다 fps를 더 낮췄습니다. 그럼에도 불구하고 2배는 사진의 눈에 띄는 개선에 충분하므로 더 높은 곳에서 재생하는 것이 불편하다면 이 옵션을 선택하는 것이 좋습니다.

테셀레이션은 이전 매개변수와 달리 각 개별 게임에서 임의의 값을 가질 수 있습니다. Heaven Benchmark에서는 없는 상태에서 그림이 크게 저하되고, 최대 레벨에서는 반대로 약간 비현실적으로 됩니다. 따라서 중간 값은 보통 또는 보통으로 설정해야 합니다.

이상 고해상도 fps가 화면의 수직 재생 빈도에 의해 제한되지 않도록 합니다. 예상대로 동기화를 켠 상태에서 거의 전체 테스트에서 프레임 수는 약 20 또는 30 프레임/초로 명확하게 나타났습니다. 이것은 화면 새로 고침과 동시에 표시되고 60Hz의 새로 고침 빈도에서 모든 펄스가 아니라 매초(60/2 = 30fps) 또는 세 번째( 60/3 = 20fps) 프레임/초). V-Sync가 비활성화되면 프레임 수가 증가하지만 화면에 특징적인 아티팩트가 나타납니다. 트리플 버퍼링은 장면의 부드러움에 긍정적인 영향을 미치지 않았습니다. 아마도 이것은 비디오 카드 드라이버 설정에 버퍼링을 강제 해제하는 옵션이 없고 벤치마크에서 정상적인 비활성화를 무시하고 여전히 이 기능을 사용하기 때문일 수 있습니다.

Heaven Benchmark가 게임이라면 최대 설정(1280×800, AA - 8x, AF - 16x, Tessellation Extreme)에서 24프레임으로는 충분하지 않기 때문에 플레이하기가 불편할 것입니다. 품질 손실을 최소화하면(1280×800, AA - 2x, AF - 16x, Tessellation Normal) 보다 수용 가능한 45fps를 얻을 수 있습니다.