Hello!
안녕하세요. 방문해주셔서 감사합니다.
현재 컴투스에서 엔진 프로그래머로 일하며 게임 엔진을 개발하고 있습니다.
게임 엔진 아키텍쳐, 실시간 렌더링, GPGPU 등의 주제를 탐구하며, 블로그를 통해 다양한 기술과 경험을 공유하고 싶습니다.
Posts
26 Apr 2026
언리얼 엔진 5.7 소스 코드 분석
5 Apr 2026
[Memo] Real-Time Rendering Ch.9
독서 메모 - Real-Time Rendering
14 Feb 2026
25 Dec 2025
4 Jul 2025
basic facts about gpus를 번역한 글입니다
9 Oct 2024
효율적인 렌더링을 위한 여러 가지 기법들에 대한 소개
5 Jan 2023
1 Jan 0001
Proxy 생성 도식 #
UPrimitiveComponent의 초기 Proxy 생성 흐름을 최대한 단순화하면 다음과 같다.
[Game Thread]
UPrimitiveComponent Register
↓
UActorComponent::RegisterComponentWithWorld()
↓
UActorComponent::ExecuteRegisterEvents()
↓
UPrimitiveComponent::CreateRenderState_Concurrent()
↓
FScene::AddPrimitive()
↓
FScene::BatchAddPrimitivesInternal()
↓
CreateSceneProxy()
↓
FPrimitiveSceneProxy 생성
↓
FPrimitiveSceneInfo 생성
↓
ENQUEUE_RENDER_COMMAND(AddPrimitiveCommand)
============================================
Thread Boundary
============================================
[Render Thread]
AddPrimitiveCommand 실행
↓
FPrimitiveSceneProxy::SetTransform()
↓
FPrimitiveSceneProxy::CreateRenderThreadResources()
↓
FScene::AddPrimitiveSceneInfo_RenderThread()
↓
Scene 편입 완료
좀 더 짧게 요약하면 다음과 같이 볼 수 있다.
- 컴포넌트가 register되면 render state 생성 절차가 시작된다.
CreateSceneProxy()를 통해FPrimitiveSceneProxy객체 자체는 Game Thread에서 생성된다.- 이후 Render Thread에 명령이 enqueue된다.
- Render Thread는 transform 설정, render resource 생성, scene 등록 마무리를 수행한다.
즉, Proxy의 객체 생성과 렌더러 편입 완료는 같은 시점이 아니다.