언리얼엔진 UI UMG 및 C++ 최적화에 관하여
(해당 정보는 대부분 웹 서칭을 통해 찾아보고 나중에 제가 혼자 참고하려고 정리해보고 있습니다.)
렌더링 프로세스에 대해
- Game thread(게임 스레드)에서 Slate Tick은 프레임당 두 번 위젯 트리를 탐색.
1번 틱 :Prepass 트리를 아래->위로 탐색하여 각 위젯의 이상적인 크기( DesiredSize )를 계산.
2번 틱: OnPaint 트리를 위->아래로 탐색하여 렌더링에 필요한 Draw Elements 를 계산.
- Render Thread에서 Slate 렌더링은 두 단계로 나뉜다.
1. Widget Render: UI의 RTT를 수행합니다. Retainer Box를 사용하는 경우 Draw Elements는 Retainer Box의 Rtain Target에 렌더링됩니다.
2. Slate Render: Draw Elements를 Back Buffer에 렌더링합니다. Retainer Box를 사용하는 경우 Retainer Box에 해당하는 Texture Resource가 Back Buffer에 렌더링됩니다.
최적화를 위한 위젯
- Invalidation box
- 위젯을 지오메트리 cache에 담아 최적화
- prepass, tick, paint
- 갱신 빈도에 따라 역효과가 날 수 있음
- Child widget 을 모두 검사
- Animation 실행 시 CanCache 프로퍼티
- 위젯 리플렉터의 인벨리데이션 디버깅을 활용
- Hidden 대신 Collapsed 를 사용(레이아웃의 자리 계산을 없앨 수 있다.)
- UTextblock에서는 SimpleTextMode 적용하면 Preppass OnPaint call 감소
- Retainer box에서 틱 웨이트를 조절하자
- 불필요한 Tick 제거
- UCLASS(meta=(DisableNativeTick))
출처 :
UMG 드로우콜 분석
한줄요약 드로우 콜은 같은 리소스와 같은 레이어 ID라는 두 가지 조건이 동시에 만족되어야 하나로 합칠 수 있습니다. UMG에서의 드로우 콜 언리얼 공식 문서에는 드로우 콜과 관련하여 이런 설
blog.nullbus.net
https://topic.alibabacloud.com/a/ui-optimization-tips-in-unreal-engine-4_8_8_10274886.html
UI optimization tips in Unreal Engine 4
At the Unreal Open Day 2017 event, Epic Games developer support engineer Mr. Guo Chunbiao introduced the UI optimization techniques in Unreal Engine 4 to the developers present. The following is a speech record. Hello everyone, I'm Guo Chunbiao, a develope
topic.alibabacloud.com
https://youtu.be/PqNm22br7y8?si=dwY8qXBg7uZeyA4I&t=1985