WPF 렌더링 더러운 영역을 분석하여 최적화 렌더링 성능

원본 : WPF 렌더링 더러운 영역을 분석하여 렌더링 성능을 최적화하는

이 문서 렌더링 성능을 향상시키기 위해 더러운 영역을 렌더링에 의해 발견을 설명합니다.


더러운 지구 더러운 지역

컴퓨터 그래픽에서 렌더링 각 프레임의 사진을 모두 그릴 수 있지만,이 컴퓨터의 성능 요구 사항이 매우 높다.

렌더링을 줄이기 위해 더러운 영역 (더티 지역)의 도입은 컴퓨터 성능에 필요합니다. 각 프레임을 그릴 때, 소프트웨어 렌더링에서 무승부 변화의 부분은 많은 자원을 절약 할 수 있습니다. 각 프레임을 렌더링하는 동안, 다시 그리기 부분에 필요하다 더티 영역 변경한다.

다음은 내 프로그램 작성 WPF입니다 Walterlv.CloudKeyboard 더러운 지역 등이 상호 작용 지속적으로 다시 칠해야합니다.

그림 삽입 설명 여기

당신은 더러운 지역은 거의 모든 인터페이스를 포함하는,보고, 매우 자주 새로 고칠 수 있습니다. 이것은 성능을 렌더링하는 것은 바람직하지 않다 측면에서 명확하다.

* 물론,이 프로그램은 모든 성능을 렌더링하는 재 허용 된 경우에도, 매우 작습니다. * 그러나 더 복잡한있을 때 많은 같은 프로그램의 일부 Geometry뿐만 아니라 3D로 그래픽 때 다시 렌더링 성능에 심각한 문제를 가져올 것이 부분을.

WPF 성능 스위트 룸

다운로드 WPF 성능 제품군 :

더러운 감시 영역

시작 WPF 성능 Suite는 선택 도구 천공기는 다음 WPF의 프로세스가 동작 메뉴에서 분석 시작합니다. 이 도구는 오랜 시간 동안 업데이트 만, 여전히 WPF 프로그램의 .NET 코어 3 버전을 지원하지 않았지만.

프로세스를 시작합니다

프로그램이 실행 중일 때, 다양한 속성은 WPF 응용 프로그램 데이터 테이블 것을 알 수있다.

그림 삽입 설명 여기

이제 Show dirty-region update overlay옵션은이 문서의 시작 부분에 오버레이의 더러운 영역을 보여 확인합니다.

그리고 더러운 지역 관련 옵션은 세 가지입니다 :

  • 더러운 지역 업데이트 오버레이보기
    • 의 필요성 재 렌더링 할 때 지역의 오염을 표시 오버레이, 더러운 각 시간대는 반투명 색상의 새 레이어에 중첩되어 나타납니다.
  • Disable dirty region support
    • 禁用脏区支持。这时,每次渲染都将重绘整个窗口。
  • Clear back-buffer before rendering
    • 每次重绘之前都将清除之前所有的绘制,使用此选项,你可以迅速找到界面中频繁刷新的部分,而重绘频率不高的部分多数时候都是纯黑。

优化脏区重绘

一开始的程序中,因为我使用了模拟 UWP 的高光效果,导致大量的控件在重绘高光部分,这是导致每一帧都在重新渲染的罪魁祸首。

于是我将高光渲染关闭,脏区的重新渲染将仅仅几种在控件样式改变的时候(例如焦点改变):

보통 작은 비트 더러운 영역

光照效果可以参见我的另一篇博客:


参考资料


我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

크리에이티브 커먼즈 라이센스

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

게시 된 382 개 원래 기사 · 원 찬양 232 · 전망 470 000 +

추천

출처www.cnblogs.com/lonelyxmas/p/12051966.html