2012-06-12 3 views
1

저는 버텍스 쉐이더와 픽셀 쉐이더 (매우 기본적인 것들)를 사용하는 Win7에서 DirectX9로 비디오 캡처 디스플레이 어플리케이션을 개발하려고 노력해 왔습니다. 그러나 표시되는 이미지는 항상 화면의 동일한 위치에서 약간의 찢어짐을 보여줍니다. 사양은 다음과Horizontal Tearing DirectX9

    비디오는
  • 디스플레이가 전체 화면 모드가 아닌 웹캠을 통해 포착되고있다
  • 화면의
  • 새로 고침 속도는
  • D3DPRESENT_INTERVAL_ONE 좋은 새로 고침 속도를 강제하는 데 사용되는 60Hz의
  • 입니다 (일부 포럼에서 발견, 작동하지 않는다)

나는이 D3DPRESENT_INTERVAL_ONE이 나에게 일관성을 제공한다는 것을 깨닫기 위해 사용할 수있는 모든 것으로이 마지막 매개 변수를 수정하려고 시도했다. 화면에서 같은 위치)가 끊어지는 경우.

V-Sync를 사용하면 문제가 해결 될 수 있지만 웹 (예, DirectX9는 구식이 됨)에 대한 정보를 찾을 수없는 것 같습니다. 따라서 도움이 될 것입니다. 매우 감사!

답변

1

찢어지지 않는 경우 D3DPRESENT_INTERVAL_DEFAULT을 사용하십시오.

이 플래그는 V- 동기화도 활성화합니다. 문서에서 : D3DPRESENT_INTERVAL_ONE가 시스템 타이머의 해상도를 향상시키기 위해 timeBeginPeriod를 호출하는 반면

D3DPRESENT_INTERVAL_DEFAULT 기본 시스템 타이머 해상도를 를 사용합니다. 이렇게하면 수직 동기화 품질이 향상되지만 처리 시간이 약간 더 소요됩니다. 두 매개 변수는 모두 으로 동기화하려고 시도합니다.