현재 위치 - 중국오락넷 - 공연예술정보 - 오프스크린 렌더링에 대한 초기 이해

오프스크린 렌더링에 대한 초기 이해

일부 제한으로 인해 렌더링 결과를 프레임 버퍼에 직접 쓸 수 없으며 대신 다른 메모리 영역에 임시로 저장했다가 렌더링이 완료된 후 프레임 버퍼에 씁니다. 오프스크린 렌더링이라고 합니다.

오프스크린 렌더링이 성능을 소모하는 이유:

1. 새로운 버퍼를 생성해야 합니다

2. 오프스크린 렌더링의 전체 과정 다중 스위칭 컨텍스트 환경이 필요합니다. 먼저 현재 화면(On-Screen)에서 오프스크린(Off-Screen)으로 전환합니다. 오프스크린 렌더링이 완료된 후 오프스크린 렌더링 버퍼의 렌더링 결과가 화면에 표시되고 컨텍스트 환경이 오프스크린에서 현재 화면으로 전환되어야 합니다.

1. 마스크 사용

2. 둥근 모서리를 설정하고 CornerRadius+maskToBounds를 호출합니다.

3. 경로를 설정하지 않고 그림자를 설정합니다

< p> 4. 래스터화를 켜시겠습니까? shouldRasterize

5. 그룹 불투명도

6. UIBlurEffect

참고: /p/72653360 ?여기 작성자는 자세한 사례를 가지고 있습니다. 분석

최종 결과는 프레임 버퍼를 사용하여 렌더링할 수 없으며, 렌더링 통합을 위해 메모리를 할당해야 합니다. 일반인의 관점에서 보면 프레임에 동시에 수정해야 하는 여러 레이어가 있을 때 트리거됩니다.

1. 100ms 이상 사용되지 않은 메모리의 콘텐츠는 자동으로 폐기됩니다.

2. 최대 오프스크린 렌더링 메모리 공간은 화면 픽셀의 2.5배이며, 렌더링해야 하는 콘텐츠가 최대값보다 크면 적용되지 않습니다.

3. 오프스크린 렌더링은 더 많은 메모리를 차지하지만 자주 사용해야 하는 일부 복잡한 레이어는 활성화하여 성능을 향상시킬 수 있습니다. 오프스크린 렌더링.

4. 실제 오프스크린 렌더링은 GPU에서 발생합니다.

5. 시뮬레이터는 오프스크린 렌더링이 있는 레이어를 감지합니다. DEBUG->컬러 오프스크린 렌더링 인터페이스가 전환됩니다. 노란색. 오프스크린 렌더링이 생성되었습니다.

copyright 2024중국오락넷