스크린 렌 더 링 학습 노트
개념 이해
OpenGL 에서 GPU 화면 렌 더 링 은 다음 과 같은 두 가지 방법 이 있 습 니 다.
On-Screen Rendering
현재 화면 렌 더 링 이란 GPU 의 렌 더 링 동작 이 현재 화면 버퍼 에서 진행 되 는 것 을 말 합 니 다.
Off-Screen Rendering
화면 에서 떨 어 진 렌 더 링 이란 GPU 가 현재 화면 버퍼 이외 의 버퍼 를 새로 열 어 렌 더 링 작업 을 하 는 것 을 말 합 니 다.
2. 스크린 에서 보 여 주 는 시비
현재 화면 렌 더 링 에 비해 화면 렌 더 링 의 대가 가 매우 높 고 주로 두 가지 측면 에 나타난다.
새 버퍼 만 들 기 스크린 렌 더 링 을 하려 면 먼저 새로운 버퍼 를 만들어 야 합 니 다.
문맥 전환 화면 에서 렌 더 링 하 는 전체 과정 은 상하 문 환경 을 여러 번 전환 해 야 합 니 다. 먼저 현재 화면 (On - screen) 에서 화면 에서 (Off - screen) 으로 전환 합 니 다.화면 에서 렌 더 링 이 끝 난 후에 화면 버퍼 에서 렌 더 링 결 과 를 화면 에 표시 하려 면 컨 텍스트 환경 을 화면 에서 현재 화면 으로 전환 해 야 합 니 다.문맥 환경의 전환 은 큰 대 가 를 치 러 야 한다.
3. 스크린 렌 더 링 트리거 방식
다음 속성 을 설정 하면 화면 에서 떨 어 진 그림 을 그립 니 다:
shouldRasterize (래 스 터 화) 마스크 (가리개) 그림자 (그림자) edge antialiasing (톱날 저항) 그룹 불투명 도 (불투명) 주의해 야 할 것 은 shouldRasterize 가 YES 로 설정 되 어 있 으 면 이 화면 그리 기 를 실행 하 는 동시에 래 스 터 화 된 내용 을 캐 시 합 니 다. 해당 layer 와 sublayers 가 변경 되 지 않 으 면 다음 프레임 에서 직접 재 활용 할 수 있 습 니 다.이것 은 렌 더 링 성능 을 어느 정도 향상 시 킬 것 이다.
다른 속성 이 열 려 있 으 면 캐 시 가 없 으 며, 화면 에서 그 리 는 것 은 모든 프레임 에서 발생 합 니 다.
4. 다른 특수 한 '스크린 렌 더 링'
이전 설명 에 따 르 면 GPU 의 현재 화면 버퍼 에 없 는 렌 더 링 을 모두 스크린 렌 더 링 이 라 고 부 르 면 또 다른 특수 한 '스크린 렌 더 링' 방식 이 있 습 니 다.
CPU
。 만약 우리 가 drawRect 방법 을 다시 쓰 고 모든 코어 그래 픽 기술 로 그리 기 작업 을 했다 면 CPU 렌 더 링 과 관련 된 것 입 니 다.전체 렌 더 링 과정 은 CPU 가 App 에 있 습 니 다.
완료, 렌 더 링 된 bitmap 는 마지막 으로 GPU 에 의 해 표 시 됩 니 다. 악기
악기 의 Core Animation 도구 에는 스크린 렌 더 링 과 관련 된 몇 가지 검사 옵션 이 있 습 니 다.
Color Offscreen-Rendered Yellow
오픈 후 스크린 에서 렌 더 링 이 필요 한 그래 픽 을 노란색 으로 강조 합 니 다. 이 는 노란색 그래 픽 에 성능 문제 가 있 을 수 있 음 을 의미 합 니 다.
Color Hits Green and Misses Red
shouldRasterize 가 YES 로 설정 되면 렌 더 링 결과 가 캐 시 됩 니 다. 그림 이 녹색 이면 이 캐 시가 재 활용 되 었 음 을 표시 합 니 다.빨간색 이면 캐 시가 중복 생 성 된다 는 뜻 으로 성능 에 문제 가 있다 는 뜻 이다.
어떻게
지금 우리 앞 에 놓 여 있 는 세 가지 선택 이 있어 야 합 니 다. 현재 화면 렌 더 링, 화면 렌 더 링, CPU 렌 더 링, 어느 것 을 사용 해 야 합 니까?이것 은 구체 적 인 사용 장면 에 따라 결정 해 야 한다.
현재 화면 렌 더 링 사용 가능 오프라인 렌 더 링, CPU 렌 더 링 이 가 져 올 수 있 는 성능 문 제 를 감안 하여 일반적인 상황 에서 현재 화면 렌 더 링 을 사용 해 야 합 니 다.
오프라인 렌 더 링 VS CPU 렌 더 링 GPU 의 부동 소수점 연산 능력 이 CPU 보다 강하 기 때문에 CPU 렌 더 링 의 효율 은 화면 렌 더 링 보다 못 할 수 있 습 니 다.그러나 간단 한 효 과 를 실현 하 는 것 이 라면 CPU 렌 더 링 을 직접 사용 하 는 효율 이 스크린 렌 더 링 보다 좋 을 수 있 습 니 다. 스크린 렌 더 링 은 버퍼 생 성 과 컨 텍스트 전환 등 시간 이 걸 릴 수 있 기 때 문 입 니 다.
한 마디 로 구체 적 인 선택 은 성능 테스트 결과 에 의 해 결정 된다.
참고 문서
Getting Pixels onto the Screen (중국어 번역 판: 화면 에 픽 셀 그리 기 )
Designing for iOS: Graphics & Performance (중국어 번역 판: iOS 그래 픽 처리 및 성능)
a performance minded take on ios design (중국어 번역 판: iOS 화면 에서 그 려 진 성능 과 메커니즘 분석 )
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.