동적 대기 시간 입력
이 항목을 사용하여 DLI(동적 대기 시간 입력)가 인게임 장치 입력 및 출력을 동기화하는 방법을 이해합니다. 입력 지연 또는 입력 대기 시간은 실제 입력이 발생한 시간과 출력이 전송되는 시간 사이의 지연으로 정의됩니다. 게임에서는 단추 누르기와 화면 출력 사이의 시간입니다. 이 대기 시간을 낮게 유지하는 것은 게임에 대한 몰입감을 유지하는 데 매우 중요합니다.
입력 대기 시간은 단추를 누른 후 이를 읽는 게임 사이의 시간입니다. DLI는 이 수식의 해당 부분에서 대기 시간을 줄이기 위해 설계된 입력 아키텍처입니다.
동적 대기 시간 입력 개요
DLI는 컨트롤러와 게임 플랫폼 간 동기화 시스템입니다. 이는 게임의 입력 호출 패턴을 평가하고 컨트롤러의 보고서 속도를 조정하여 입력 호출 직전에 최신 입력을 전달합니다. 다음은 입력 호출을 완료하는 데 필요한 주요 구성 요소입니다.
- 보고 빈도와 버튼 읽기 빈도를 동적으로 조정할 수 있는 컨트롤러.
- 게임 입력 읽기 패턴을 모니터링하여 다음 입력이 필요한 시점을 예측하는 능력.
- 이 패턴을 이용하여 컨트롤러 보고서를 게임의 요구 사항에 맞게 조정하는 능력.
DLI 정확도
DLI는 지원되는 장치가 사용 중일 때 실행됩니다. 이 기능은 다음 입력 읽기가 일어나는 때를 얼마나 잘 예측하는지 모니터링합니다. 또한 이 값을 내부 신뢰도로 유지할 수 있습니다. 예측이 계속해서 빗나가면 신뢰도가 낮아지며 DLI를 사용할 수 없게 됩니다. 낮은 신뢰도 값이 발생하는 이유로 가장 흔한 것은 일관성이 없는 동작입니다. DLI는 입력을 일관된 케이던스에서 읽으며 이에 맞춰 동기화된다고 가정합니다. 일부 게임에서는 DLI를 앞서거나 입력 내용을 불규칙한 간격으로 읽는 시뮬레이션 스레드를 사용합니다. 이러한 경우 동기화할 안정적인 속도를 찾지 못하기 때문에 DLI에 혼란이 일어나 신뢰도가 낮아질 수도 있습니다.
참고 항목
DLI는 125Hz의 주기로 제한됩니다. 해당 값보다 높은 주기를 시도하면 DLI 자체가 비활성화됩니다.
힌트를 사용하여 정확도 높이기
낮은 신뢰도 값을 완화하고 DLI를 지원하기 위해 힌트를 플랫폼으로 보내 입력의 동기화 시기를 통제할 수 있습니다.
SendInputSynchronizationHint가 호출되면 DLI는 입력 읽기 시간을 무시하고 힌트 호출에 동기화합니다. 입력이 늦지 않게 하려면 다음 코드에서처럼 각 시뮬레이션 패스에서 첫 번째 입력 읽기 직전에 SendInputSynchronizationHint
을(를) 사용합니다.
IGameInputDevice::SendInputSynchronizationHint()
DLI 사용 중지
현재 입력 동기화를 해제하는 데 권장되는 상황은 없지만, 기능을 사용하지 않도록 설정하면 장점을 평가할 때 유용할 수도 있습니다. 다음 코드와 같이 SetInputSynchronizationState를 사용하여 DLI를 사용 중지하거나 다시 사용하도록 설정합니다.
IGameInputDevice::SetInputSynchronizationState(bool enabled)
DLI 성능 분석
DLI가 타이틀에 대해 수행하는 방법에 대한 자세한 내용은 동적 대기 시간 입력 성능 분석(NDA 항목)권한 부여 필요을 참조하세요.
장치 지원
DLI는 지원 펌웨어가 있는 입력 장치에서만 실행됩니다. DLI를 지원하는 장치에 대한 자세한 내용은 GameInputDeviceCapabilities를 참조하세요.