Hello!

안녕하세요. 방문해주셔서 감사합니다.

현재 컴투스에서 엔진 프로그래머로 일하며 게임 엔진을 개발하고 있습니다.
게임 엔진 아키텍쳐, 실시간 렌더링, GPGPU 등의 주제를 탐구하며, 블로그를 통해 다양한 기술과 경험을 공유하고 싶습니다.

Posts

26 Apr 2026

Unreal Engine 5 분석 - Proxy

언리얼 엔진 5.7 소스 코드 분석

5 Apr 2026

[Memo] Real-Time Rendering Ch.9

독서 메모 - Real-Time Rendering

14 Feb 2026

Vulkan에서 Combined Image Sampler 타입을 지원하는 이유

25 Dec 2025

No Graphics API

Sebastian Aaltonen - No Graphics API를 번역한 글입니다

4 Jul 2025

GPU에 관한 기본적인 사실들

basic facts about gpus를 번역한 글입니다

9 Oct 2024

Deferred Shading의 개념

효율적인 렌더링을 위한 여러 가지 기법들에 대한 소개

5 Jan 2023

Modern GPU에서 삼각형이 그려지는 과정

Life of a triangle - NVIDIA’s logical pipeline를 번역한 글입니다

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 편입 완료

좀 더 짧게 요약하면 다음과 같이 볼 수 있다.

  1. 컴포넌트가 register되면 render state 생성 절차가 시작된다.
  2. CreateSceneProxy()를 통해 FPrimitiveSceneProxy 객체 자체는 Game Thread에서 생성된다.
  3. 이후 Render Thread에 명령이 enqueue된다.
  4. Render Thread는 transform 설정, render resource 생성, scene 등록 마무리를 수행한다.

즉, Proxy의 객체 생성렌더러 편입 완료는 같은 시점이 아니다.