Unity 6 RenderGraph는 무엇이 달라졌을까?
들어가며 최근 Unity 렌더링 구조를 보면 자주 등장하는 키워드 중 하나가 바로 RenderGraph입니다. 특히 Unity 6 이후부터는 URP/HDRP 내부 구조에서도 RenderGraph 기반 흐름이 점점 강조되고 있습니다. 그런데 처음 RenderGraph를 접하면 이런 생각이 들기도 합니다.…
Series Archive
게임 개발 및 프로그래밍에 관련된 주제에 대한 카테고리 입니다.
들어가며 최근 Unity 렌더링 구조를 보면 자주 등장하는 키워드 중 하나가 바로 RenderGraph입니다. 특히 Unity 6 이후부터는 URP/HDRP 내부 구조에서도 RenderGraph 기반 흐름이 점점 강조되고 있습니다. 그런데 처음 RenderGraph를 접하면 이런 생각이 들기도 합니다.…
들어가며 예전 Unity 프로젝트들을 보면 대부분 Built-in Render Pipeline 기반으로 제작되어 있습니다. 한때 Unity 렌더링의 기본 구조였고, 많은 게임들이 이 파이프라인 위에서 만들어졌습니다. 그런데 시간이 지나면서 Unity는 새로운 렌더링 파이프라인을 적극적으로 밀기 시작했습니다. URP(Universal…
🚀 들어가며 아래 링크는 C 언어로 코루틴을 구현하는 아주 유명한 글입니다. https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html 처음 보면 굉장히 충격적입니다. 왜냐하면 C 언어에는 coroutine 문법이 없고, yield도 없고, async/await도 없는데 코루틴처럼 동작하는 구조를 만들어내기 때문입니다. 게다가 스레드도 사용하지…
🚀 들어가며 이전 글에서는 UClass가 실제로 어떤 정보를 가지고 있는지 살펴봤습니다. 정리하면 UClass는 단순한 클래스 이름 저장 구조가 아니라, 언리얼 엔진의 Reflection 시스템을 구성하는 핵심 메타데이터 객체입니다. 그리고 이 Reflection 시스템은 다음 흐름을 통해…
🚀 들어가며 이전 글에서는 Unreal Header Tool(UHT)이UCLASS, UPROPERTY, UFUNCTION 같은 매크로를 분석해 Reflection 메타데이터를 생성하는 과정을 살펴봤습니다. UHT를 공부하다보면 자연스럽게 다음 질문이 생길 수 있습니다. UHT가 생성한 Reflection 정보는 어디 저장될까? 언리얼은 런타임에 클래스…
🚀 들어가며 Unreal Engine 4 시절의 C++ 코드를 보면 UObject 참조 변수를 아래와 같이 작성했습니다. UPROPERTY() AActor* TargetActor; 굉장히 익숙한 형태입니다. UObject 계열 객체는 언리얼 GC가 관리하고,UPROPERTY()매크로를 붙이면 GC가 해당 참조를 추적할 수 있습니다.…
🚀 들어가며 이전 글에서는 Unreal Engine이 왜 C++ 기본 RTTI 대신 자체 Reflection 시스템을 사용하는지 살펴봤습니다. 그리고 그 과정에서 자연스럽게 등장했던 것이 바로 UCLASS() UPROPERTY() UFUNCTION() GENERATED_BODY() 같은 매크로들입니다. 언리얼을 공부하다보면 이런 생각이 들…
🚀 들어가며 이전 글에서는 Unreal Engine이 왜 C++ 기본 RTTI 대신 자체 Reflection 시스템을 사용하는지 살펴봤습니다. 언리얼은 단순 타입 확인을 넘어서 에디터 블루프린트 직렬화 네트워크 복제 가비지 컬렉션(GC) 같은 엔진 전체 기능과 연결되기 때문에,…
🚀 들어가며 이전 글에서는 C++에서 다운캐스팅이 왜 위험한지, 그리고 dynamic_cast 없이 타입을 확인하기 위한 TypeId/TypeInfo 기반 커스텀 RTTI 시스템을 직접 구현해봤습니다. 그 과정을 보면 자연스럽게 이런 질문이 생깁니다. ❓ 그런데 Unreal Engine은 왜 C++의…
🚀 들어가며 이전 글들에서는 C++ 스마트 포인터의 기본 개념과 함께, shared_ptr, weak_ptr, enable_shared_from_this의 동작 원리를 살펴보았습니다. 그 과정에서 계속 등장한 핵심 개념이 하나 있습니다. 👉 바로 Control Block 입니다. shared_ptr은 객체의 생명주기 관리를 위해…